반응형

이번에는 실행된 크롬에서 데이터를 가져오는 방법을 보자.


webdriver에는 find~로 시작하는 여러 함수들이 있다.

이 함수들이 실행된 브라우저에서 값을 찾는 역할을 수행한다.


css, xpath 등의 값을 이용할 수 있으며, 하나의 엘리먼트, 복수의 엘리먼트 검색이 가능하다.


ex)

driver.find_element_by_css_selector("Selector") 하나의 엘리먼트 검색
driver.find_elements_by_css_selector("Selector") 복수의 엘리먼트 검색


이렇게 검색된 엘리먼트에서 값을 가져오는 방법은 아래와 같다.

ex)

엘리먼트.text 엘리먼트에 있는 텍스트
엘리먼트.get_attribute("AttributeName") 엘리먼트에 있는 attribute 값


그럼 이를 이용하는 코드를 작성해보자.

수집 대상은 네이버뉴스의 이 시각 주요뉴스 타이틀들이다.

포스팅 작성하는 시점에 타이틀의 css는 ".newsnow_tx_inner" 이다.


from selenium import webdriver

driver = webdriver.Chrome('chromedriver.exe')
driver.get("http://news.naver.com/main/home.nhn")

titleEles = driver.find_elements_by_css_selector(".newsnow_tx_inner")
for title in titleEles :
    print(title.text)

# 코드 해석

3. 크롬 드라이버 로드

4. 네이버 뉴스 페이지로 이동

6. '이 시각 주요뉴스'의 엘리먼트를 수집 (복수)

7~8. 반복하며 타이틀 출력


잘 작성했다면 주요뉴스 10개의 타이틀이 출력되는 것을 볼 수 있다.



[ 이전 글 보기 ]

2018/02/11 - [Python] - [파이썬 크롤링] selenium을 이용해 크롤링하기1 (크롬 실행)


Posted by NULL..
,