본문 바로가기

파이썬 공부 - 네이버 실검 크롤링 

검색하면 정말 많은 자료가 나온다. 되는 것도 있고 안되는 것도 있고

일단은 맛보기를 하는 게 중요한데 걸러내는 것도 엄청난 일이다.

 

여튼 제목에 적힌 날짜에 동작하는 코드를 올려둬야 겠다.

이 코드는 아래 블로그님이 잘 정리해 둔 글에서 가져와서 내 PC 에서 테스트해 본 결과를 올려두었다.

https://jaeho0613.tistory.com/112

 

[Python Crawling] - 네이버 실검 크롤링 #1

현재 네이버 실시간 검색어 크롤링 방법이 달라졌다. 유튜브, 블로그 등에 많은 예제가 있지만 현재는 네이버 실시간 검색어가 동적으로 정보를 받게 바뀌어서 기존 예제들로 실시간 검색어를 �

jaeho0613.tistory.com

# from https://jaeho0613.tistory.com/112

# python에서 HTTP 요청을 보내는 모듈
import requests
# bs4 라 불리는 html 분석 라이브러리
from bs4 import BeautifulSoup

# 유저 설정
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}

# 네이버 메인이 아닌 DataLab 페이지
url = 'https://datalab.naver.com/keyword/realtimeList.naver?where=main'

# User 설정
res = requests.get(url, headers = headers)

# res.content 주의
soup = BeautifulSoup(res.content, 'html.parser')
#print(soup)

# span.item_title 정보를 선택
data = soup.select('span.item_title')
#print(data)
#[<span class="item_title">자연재난 재난문자</span>, <span class="item_title">천안</span>, ...itle">귀임</span>]

# for 문으로 출력해준다.
for item in data:
    print(item.get_text())
	# 스트링 아이템이 하나인 경우에는 get_text()와 string 이 동일하다.
    #print(item.string)

#data = soup.select("li.ranking_item")
## for 문으로 출력해준다.
#for item in data:
#    print(item.get_text())

첨부파일로도 하나 올려둔다.

c.py
0.00MB

 

get_text() 를 사용하고 있길래 string 과 무슨 차이가 있는지 간략히 조사해보고 간단하게 테스트한 코드도 넣어둬 봤다. 신기한 함수를 다 구현해 두고 있어 요즘은 잘 찾아 쓰는게 짱땡~~

아래 글을 참고해 보세요. 둘 다 html 태그를 제거하고 남는 문자열만 올려주는 함수인데 약간 차이가 있긴하다.

https://hogni.tistory.com/21

 

[파이썬] BeautifulSoup을 이용해서 텍스트 추출하기: get_text(), string

BeautifulSoup을 이용해서 텍스트를 추출하는 방법은 대표적으로 두 가지가 있습니다. 하나는 get_text() 이용하는 것이고, 다른 하나는 string를 이용하는 것입니다. 두 방식의 차이점에 대해서 알아보�

hogni.tistory.com

아무튼 현재 내 컴퓨터에서 실행한 결과는 아래와 같다.

네이버 실시간 검색어 크롤링 결과

아래 그림의 데이터를 가져와서 출력한 것입니다. 소스코드에 url 이 잘 적혀 있죠? 😁😁

네이버 데이터랩 DataLab 실시간 검색어 순위 화면

많은 비 다들 조심하세요!

폭우 자전거 도시

Genaro Servín 님의 사진, 출처: Pexels

 

 

^~^ 오늘을살자.

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.