21.03.17 22:02 작성
·
350
0
바로 실전 크롤링해보기 :네이버 주식 사이트 크롤링하기 강의에서 인기검색종목을 크롤링하는 예제를 실습해보고 적용하기 위해 더보기를 들어가 인기검색어가 30개까지 나와 있는 페이지에서 각 항목들을 크롤링 하려했으나 실행이 되지 않았습니다.
작성한 코드는 이것이었습니다.
import requests
from bs4 import BeautifulSoup
res=requests.get('https://finance.naver.com/sise/lastsearch2.nhn')
soup=BeautifulSoup(res.content, 'html.parser')
data=soup.select('#contentarea > div.box_type_l > table > tbody > tr:nth-child(3) > td:nth-child(2) > a')
data
그러나 data를 출력했을 땐 [ ] 이런 식으로 빈 리스트만 나왔습니다.
구글링해본결과 페이지를 켰을 때 자바스크립트에 의해 동적으로 변동되는 페이지는 값을 불러올 수 없어 그런다는데 이 사례도 동일한 경우인지 궁금해서 문의를 남깁니다.
답변 1
0
아래 코드 그대로 복붙해서 적용해보셔요.
제가 해보니 동적웹페이지 때문이 아니고, 선택자 문제인것 같네요.
저도 이거 해보느라 시간 쪼끔 걸렸네요 ㅎ
도움이 되었길..
코드 -------------------
import requests
from bs4 import BeautifulSoup
res=requests.get('https://finance.naver.com/sise/lastsearch2.nhn')
soup=BeautifulSoup(res.content, 'html.parser')
tr_list = soup.select('div.box_type_l table tr')
for item in tr_list[3:]:
if item.select_one("a"):
title = item.select_one("a")
print(title.get_text())