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

leo41572님의 프로필 이미지
leo41572

작성한 질문수

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

실전 크롤링과 강력한 크롤링 기술 팁2: 네이버 사이트 크롤링 강의중 질문이 있습니다.

작성

·

515

1

네이버 사이트 급상승 검색어 키워드를 하던중 수업의 내용을 따라 코드를 작성해 보니...

아무런 검색이 되지 않아 질문드립니다 ㅠㅠ

참고로 pdf에 있는 크롤링 코드로도 해보았지만...아무런 값이 출력되지 않습니다 ㅠ

확인 부탁드리겠습니다!

답변 4

4

안녕하세요.

윗분 말씀대로 실시간 관련 소스는 저 부분이 전부입니다. 그래서 www.naver.com 말고 급상승 검색어를 클릭하시고 DataLab 페이지로 들어가세요. 그리고 F12 클릭하시면 실시간 검색어 순위가 나타날텐데요. 거기서 크롤링을 하시면 되겠습니다. 아래 코드를 삽입하시면 작동합니다. 첫번째 코드에 있는 headers 부분은 네이버가 무슨 이유인지 모르겠지만 싸이트에 접속을 못하게 해서 우회용도로 쓰인거라 강의에서 다룬 내용과 같은 코드인 두번재 코드를 삽입해서 작동이 되는지 먼저 확인을 해보시고, 안되면 첫번재 코드를 넣어서 작동시켜 보시길 바랍니다.

첫번째 코드

import requests

from bs4 import BeautifulSoup

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

url = 'https://datalab.naver.com/keyword/realtimeList.naver?where=main'

res = requests.get(url, headers = headers)

soup = BeautifulSoup(res.content, 'html.parser')

data = soup.findAll('span','item_title')

for item in data:

    print(item.get_text())

두번째 코드

res1 = requests.get('https://datalab.naver.com/keyword/realtimeList.naver?where=main')

soup1 = BeautifulSoup(res.content, 'html.parser')

data1 = soup.findAll('span', 'item_title')

for item in data1:

    print(item.get_text())

1

질문이 있습니다. 첫번째 소스에 

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}

각 브라우저의 버전 같은 값을 headers 변수에 저장하셨는데..해당 코드의 의미가 무엇인지 궁금합니다.

0

네이버측에서 크롤러들을 막기 위해서 해더값을 체크하기 때문에 일반 브라우져 처럼 요청하기 위해 해더값을 설정하는 것 같네요

0

저도 윗분과 같은 상황입니다.

네이버 홈페이지 소스 보기에서 찾아봤는데 실시간 관련 소스는 부분이 전부입니다.

leo41572님의 프로필 이미지
leo41572

작성한 질문수

질문하기