IT’s Portfolio

[Python] 파이썬 웹 크롤링으로 네이버 실시간 검색어를 파싱해보자 본문

Development Study/Python

[Python] 파이썬 웹 크롤링으로 네이버 실시간 검색어를 파싱해보자

f1r3_r41n 2019. 11. 3. 17:51
728x90
반응형

전편인 롤 전적 크롤링 프로그램보다 간단한

그냥 존나 쉬운 네이버 실시간 검색어 크롤링 프로그램을 만들어보자.

 

준비물 : python, requests 라이브러리, bs4 라이브러리, 당신의 열정

 

import

import requests
from bs4 import BeautifulSoup

설명할 필요가 굳이 있나 싶다.

 

Requests와 BeautifulSoup 세팅과 변수선언

url = "https://www.naver.com/"
req = requests.get(url)
html = req.text
soup = BeautifulSoup(html, "html.parser")

RealTimeSearch = []
count = 0

네이버 실시간 검색어를 파싱할때는 굳이 헤더를 변경해줄 필요가 없다.

모바일 버전에서는 테이블 명과 클래스 명이 다르니 PC 버전에서 파싱해오도록 하자.

 

실시간 검색어와 기준 시간 뽑아내기

# 실시간 검색어를 뽑아내기 위한 세팅
RealTimeSearch1 = soup.find('div', {'class' : 'ah_roll_area PM_CL_realtimeKeyword_rolling'})
RealTimeSearch2 = RealTimeSearch1.find('ul', {'class' : 'ah_l'})

# 기준 시간
RealTime1 = soup.find('div', {'class' : 'ah_list PM_CL_realtimeKeyword_list_base'})
RealTime2 = RealTime1.find('div', {'class' : 'ah_info'})
RealTime = RealTime2.find('p', {'class' : 'ah_time'}).text[:-4]

# 실시간 검색어 뽑아내기
for i in RealTimeSearch2.select('span', {'class' : 'ah_k'}):
    RealTimeSearch.append(i.text)

실시간 검색어를 뽑아내기 위해 세팅을 해준다.

div[class=ah_roll_area PM_CL_realtimeKeyword_rolling] 코드 안에 ul[class=ah_l] 데이터를 찾는다.

 

실시간 검색어를 파싱해오는 기준 시간을 크롤링한다.

div[class=aah_list PM_CL_realtimeKeyword_list_base] 코드 안에 div[class=ah_info] 코드 안에 p[class=ah_time] 데이터를 찾아 문자열로 바꾸고 끝에서부터 4글자를 뺀다.

 

위에 세팅해놓은 것을 바탕으로 실시간 검색어를 뽑아낸다.

ul[class=ah_l] 코드 안에 span[class=ah_k] 데이터를 모두 뽑아 RealTimeSearch 배열에 하나씩 저장한다.

 

실시간 검색어 출력 정리하기

print("===========================")
print("네이버 실시간 급상승 검색어")
print(RealTime)
print("===========================")

# 출력 정리하기
for i in range(0, 40):
    if i%2 == 1:
        count = count+1
        print(str(count) + "위: " + RealTimeSearch[i].strip())
        print("--------------------------")
    else:
        continue

실시간 검색어를 모두 뽑아 RealTimeSearch 배열에 저장할 때 순위도 배열에 저장된다.

짝수 배열에는 순위가 저장되어있고 홀수 배열에는 검색어가 저장되어있는데 for문과 if문을 통해 검색어만 뽑아낸다.

strip() 함수를 통해 공백을 제거해주고 출력해준다.

 

실행화면

 

제작 후기

줫밥

728x90
반응형
Comments