21.04.15 13:11 작성
·
461
0
안녕하세요, 선생님.
풀스택 개발자를 향해 열심히 학습하고 있는 개린이입니다.
크롤링기초 부트캠프 > 네이버 증권 크롤링 챕터 학습 중 아래의 코드를 사용했는데,
정상작동을 하지 않아 어떤 문제가 있는 지 궁금하여 문의드립니다.
------------------------------------------------------------------------------
import requests
from bs4 import BeautifulSoup
res = requests.get("https://finance.naver.com/main/main.nhn")
soup = BeautifulSoup(res.content, 'html.parser')
items = soup.select('#container > div.aside > div.group_aside > div.aside_area.aside_stock > table > tbody > tr > th > a')
for item in items:
print(item.get_text())
# div.aside_area.aside_stock > table > tbody > tr > th > a (CSS 셀렉터 활용)
네이버 주식(https://finance.naver.com/main/main.nhn) 우측에서
해외주식 -> 다우산업 -> 크롬에서 검사버튼 클릭 -> COPY (SELECTOR)를 통해 추출한 내용입니다.
해외주식 지수(숫자)가 아닌 단순 '명칭'만 뽑는 코드를 작성한 점 참고 부탁드립니다.
어떠한 오류가 있는 지 검토해주신 후 개선책이 있다면 답변 부탁드립니다.
좋은 강의 감사합니다.
------------------------------------------------------------------------------
답변 1
0
안녕하세요, 제가 해보니 크롤링 할때 그냥 크롤링 코드 실행하시면 안되고,
자신의 유저 에이전트 정보를 넣어야 크롤링이 되더라구요.
유저 에이전트 정보는 구글에 검색하시면 나오니 그거 복사해서
아래의 코드에 붙여넣기 하시면되요.
저도 첨에 안되서 알아내는데까지 시간 엄청 잡아먹었네요.
아무튼 도움이 되었으면 좋겠네요ㅎ.
크롤링 코드 -----------------------------------------
import requests
from bs4 import BeautifulSoup
url = "https://finance.naver.com/main/main.nhn"
headers = {"User-Agent":"자신의 유저에이전트 정보"}
res = requests.get(url, headers = headers)
soup = BeautifulSoup(res.content, 'html.parser')
trs = soup.select("div.group_aside div.aside_stock tr.up")
for item in trs:
print(item.select_one("th > a").get_text().strip())
2021. 04. 17. 11:58
바쁘실텐데 도움주셔서 감사합니다.
UA값 넣어서 진행해볼게요.
오늘도 행복한 하루보내세요. ^^