인프런 커뮤니티 질문&답변

nomad9176님의 프로필 이미지

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

네이버 주식 <해외 지수> 크롤링 중 문제에 관한 질문

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

ses123you님의 프로필 이미지

2021. 04. 17. 08:47

안녕하세요, 제가 해보니 크롤링 할때 그냥 크롤링 코드 실행하시면 안되고,

자신의 유저 에이전트 정보를 넣어야 크롤링이 되더라구요.

유저 에이전트 정보는 구글에  검색하시면 나오니 그거 복사해서 

아래의 코드에 붙여넣기 하시면되요.

저도 첨에 안되서 알아내는데까지 시간 엄청 잡아먹었네요.

아무튼 도움이 되었으면 좋겠네요ㅎ.

크롤링 코드 -----------------------------------------

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())

nomad9176님의 프로필 이미지
nomad9176
질문자

2021. 04. 17. 11:58

바쁘실텐데 도움주셔서 감사합니다.

UA값 넣어서 진행해볼게요.

오늘도 행복한 하루보내세요. ^^