컴퓨터/Python
지난 포스트에 이어서 selenium을 통해서 특정 웹페이지에 접근하고 필요한 HTML 소스 및 요소들을 접근하는 방법에 대해서 알아보도록 합시다.
selenium을 통해서 get요청을 한 후 웹 브라우저 드라이버에서 생성된 소스 값을 얻어올 수 있습니다.
browser = webdriver.Chrome()
browser.get('https://www.tistory.com')
print(browser.page_source)
사실, 이 방법만 알고 Beautifulsoup을 같이 사용한다면 요소에 쉽게 접근하는 것이 가능합니다.
하지만, selenium에서 자체적으로 소스의 요소에 접근할 수 있기 때문에 본문에서는 그 방법을 알아보도록 하겠습니다.
2가지의 방법으로 요소에 접근할 수 있습니다.
해당 메서드들은 호출 형태는 다음과 같습니다.
browser.find_element(self,by값,value)
browser.find_elements(self,by값,value)
여기서 by값에 다양한 어떤 조건이 들어올지 명시해 줄수 있습니다.
또한 이 By값을 적용하기 위해서는 상단에 By값을 사용하기 위해 모듈에서 import 해주어야 합니다.
from selenium.webdriver.common.by import By
이제 해당 메서드들을 사용해보면서 포스트를 마치겠습니다.
#Tag명으로 요소 추출
itemlsit = browser.find_elements(By.TAG_NAME,'a')
for item in itemlsit:
print(item.text)
#클래스 명으로 추출
itemlist = browser.find_element(By.CLASS_NAME,'inp_text')
print(itemlist.get_attribute('innerHTML'))
Beautifulsoup처럼 연속해서 자식 요소를 검색하며 찾아갈 수 있고, 전체 HTML의 값을 취하는 것 또한 가능합니다.
#요소의 자식요소 접근하기 및 전체 HTML 값 얻기
itemlist = browser.find_element(By.TAG_NAME,'body')
print(itemlist.get_attribute('innerHTML'))
item = itemlist.find_element(By.ID,'daumFoot')
print(item.get_attribute('innerHTML'))
print(item.text)
Python - Selenium2 ( 대기 ) (0) | 2022.05.09 |
---|---|
Robots.txt ? (크롤링과 규약) (0) | 2022.05.09 |
Python - Selenium 맛보기 (동적 웹 페이지 크롤링) (0) | 2022.05.04 |
Python - Beautifulsoup 사용 법 및 예제 (0) | 2022.05.03 |
Python - 크롤링 실패 사례 (Http 406 error) 유저 정보의 필요성 (0) | 2022.04.12 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet