'토트넘'을 네이버 뉴스에서 검색하여 5페이지를 selenium으로 스크래핑하겠습니다.
스크래핑할 것들은 기사 제목, 기사 미리보기 내용, 기사 이미지 입니다.
📌 설치 모듈
pip install selenium
수집 로직은 beautifulsoup4로 스크래핑 했던 방식과 같습니다! 아래 링크는 자세한 과정이 설명 되어 있습니다.
참고하실 분들은 참고해주세요
[python] beautifulsoup 네이버 기사 크롤링
'토트넘'을 네이버 뉴스에서 검색하여 5페이지를 beautifulsoup으로 크롤링하겠습니다. 크롤링할 것들은 기사 제목, 기사 미리보기 내용, 기사 이미지 입니다. 📌 설치 모듈 pip install beautifulsoup4 pip
puddle-of-devstory.tistory.com
저는 css_selector를 이용하여 스크래핑하였습니다.
그리고 이미지 링크를 css_selector만을 이용하여 가져왔을 때 빈 값이 나왔습니다.
개발자 모드에서 코드를 보니 이미지가 src 속성 값으로 들어가 있습니다.
이럴 때는 부모 클래스를 적어주고 get_attribute 를 이용하여 속성 값을 가져올 수 있습니다.
driver.find_element_by_css_selector("a.dsc_thumb > img").get_attribute("src")
전체 코드는 다음과 같습니다.
driver = webdriver.Chrome(service = Service(ChromeDriverManager().install()))
title = []
article = []
img = []
# 5페이지 반복 수집
for i in range(5):
url = 'https://search.naver.com/search.naver?
where=news&sm=tab_pge&query=%ED%86%A0%ED%8A%B8%EB%84%98&sort=0&photo=0&field=0&pd=0&ds=&de=&cluster_rank=30
&mynews=0&office_type=0&office_section_code=0&news_office_checked=&nso=so:r,p:all,a:all&start='+str(i*10+1)
driver.get(url)
# 한 페이지 내에 실린 기사 개수 만큼 크롤링
for j in range(len(driver.find_elements_by_css_selector("a.news_tit"))):
title.append(driver.find_elements_by_css_selector("a.news_tit")[j].text)
article.append(driver.find_elements_by_css_selector("a.api_txt_lines.dsc_txt_wrap")[j].text)
# 이미지는 속성값이므로 get_attribute 사용
img.append(driver.find_elements_by_css_selector("a.dsc_thumb > img")[j].get_attribute("src"))
time.sleep(2)
driver.quit() # 드라이버 종료
df = pd.DataFrame()
df['title'] = title
df['article'] = article
df['img'] = img
df
'DATA > Python' 카테고리의 다른 글
[python] 데이터프레임 전체 출력 (0) | 2022.04.18 |
---|---|
[python] pandas의 loc, iloc 사용법 (0) | 2022.04.17 |
[python] pandas의 loc, iloc 차이 (0) | 2022.04.15 |
[python] beautifulsoup 네이버 기사 스크래핑 (0) | 2022.04.15 |
[python] 웹페이지 크롤링 태그, 클래스, 아이디 (0) | 2022.04.11 |