inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

데이터 추출하기 - not 선택자 활용

어떤 경우에 get_attribute 이걸 사용하나요?

170

루키22

작성한 질문수 3

0

동적 페이지 크롤링 하고 있는데..

어떤 경우에는 select_one를 사용하

또 다른 경우에는 get_attribute이걸 쓰더라고요..

어떤 때에 각각 쓰는건지 아직 이해를 못했어요.

뭔가 알것같기도 하고.. 또 사용도 할 수는 있을 것 같은

좀 더 정확하게 이해하고 싶어요.

 

예를 들면 (맞는 코드는 아니지만)

# 제목 가져오기
from bs4 import BeautifulSoup

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
items = soup.select('#main-area > div:nth-child(4)') 

for item in items:
    title = item.select_one('.article').text.strip()
    link = item.select_one('.article').attrs['href']
    print(title,link)

 이런 식으로 쓰기도 하니까 좀 헷깔립니다.

단순히 정적페이지/동적페이지에 따라 맞게 쓰는걸까요?

python 웹-크롤링

답변 2

0

스타트코딩

음 글로 설명하면 더 헷갈려질건데

동적페이지란 무엇인지 강의 영상을 한번 더 돌려보는 것을 추천드려요!

 

(간단하게만 설명 드리면)

 

JavaScript 를 동작시켜서 데이터를 가져와야 하는 페이지

= 동적 페이지

 

여기서 JavaScript 를 동작시킬려면 셀레니움이 필요합니다.

셀레니움으로 웹브라우저를 띄워주고 html 을 다 받아온 다음에 soup로 만들어 주면

select_one (select) 로 데이터를 추출 할 수 있습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

select_oneget_attribute을 사용하는 상황은 크롤링 대상 페이지의 구조와 필요한 데이터에 따라 달라집니다.

select_one 함수는 BeautifulSoup 라이브러리에서 사용하며, CSS 선택자를 이용해 HTML 문서에서 특정 요소를 찾는 데 사용합니다. 주로 정적 페이지에서 HTML 요소의 내용을 추출할 때 사용됩니다. 예를 들어, 특정 클래스를 가진 첫 번째 요소의 텍스트를 가져오고 싶을 때 사용할 수 있습니다.

title = soup.select_one('.article').text.strip()

반면, get_attribute 메서드는 Selenium 라이브러리에서 웹 브라우저를 통해 동적으로 생성되는 요소들을 다룰 때 사용합니다. 웹 페이지에 자바스크립트를 통해 동적으로 변경되거나 생성되는 요소의 속성값을 가져올 때 사용됩니다. 예를 들어, 요소의 href 속성을 가져오고자 할 때 사용할 수 있습니다.

link = driver.find_element_by_css_selector('.article').get_attribute('href')

정리하면, select_one은 정적으로 렌더링된 페이지의 요소를 선택할 때 사용되고, get_attribute은 동적 페이지에서 특정 요소의 속성 값을 가져올 때 사용됩니다. 선택하는 메서드는 작업하려는 페이지의 유형(정적 또는 동적)과 필요한 데이터의 특성에 따라 결정됩니다.

셀레니움 환경설정 오류

0

52

2

네이버 로그인 관련

0

282

2

안녕하세요 셀레니움에 대해서 질문

0

89

1

크롤링 연습사이트 문의

0

102

2

선택자 질문

0

74

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

78

2

자동 로그인 질문

0

90

2

44강 제목, 링크

0

107

1

원하는 값이 없을 때

0

91

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

230

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

100

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

91

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

102

1

조건문 else 사용하지 않는 이유

0

77

2

셀레니움으로 접근할 수 없는 경우

0

98

2

웹페이지 변경

0

75

2

자바스크립트로 태그 선택 시 질문입니다.

1

65

2

수료증은 어떻게 받나요?

0

122

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

61

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

202

2