어떤 경우에 get_attribute 이걸 사용하나요?
170
작성한 질문수 3
동적 페이지 크롤링 하고 있는데..
어떤 경우에는 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)이런 식으로 쓰기도 하니까 좀 헷깔립니다.
단순히 정적페이지/동적페이지에 따라 맞게 쓰는걸까요?
답변 2
0
음 글로 설명하면 더 헷갈려질건데
동적페이지란 무엇인지 강의 영상을 한번 더 돌려보는 것을 추천드려요!
(간단하게만 설명 드리면)
JavaScript 를 동작시켜서 데이터를 가져와야 하는 페이지
= 동적 페이지
여기서 JavaScript 를 동작시킬려면 셀레니움이 필요합니다.
셀레니움으로 웹브라우저를 띄워주고 html 을 다 받아온 다음에 soup로 만들어 주면
select_one (select) 로 데이터를 추출 할 수 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
select_one과 get_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





