본문 바로가기

소프트웨어활용

파이썬(python) 을 이용하여 네이트(nate)에서 실시간 이슈 키워드 추출하기

반응형

파이썬을 사용하여 키워드 순위를 크롤링하는 방법이 궁금하죠? 

네이버에서 실시간 키워드 조회하는 기능이 없어지면서 찾기가 더 어려워졌습니다.

이번 포스팅에서는 이를 구현하는 코드를 단계별로 쉽게 이해할수 있도록 코드 작성 순서를 설명해 보겠습니다.

먼저 필요한 라이브러리를 가져옵니다:

import time
import requests
from bs4 import BeautifulSoup
from tkinter import *

여기서, 우리는 프로그램에 지연을 삽입하기 위한 time 라이브러리,

우리가 크롤하고 싶은 웹사이트에 HTTP 요청을 하기 위한 requests 라이브러리,

웹사이트의 HTML을 분석하고 정보를 추출하기 위한 beautifulsoup,

그리고 우리의 키워드 순위 크롤러를 위한 GUI를 구축하기 위한 tkinter를 import 합니다.

다음으로, 우리는 Tkinter 라이브러리의 Tk() 방법을 사용하여 응용 프로그램의 기본 창을 만듭니다.

root = Tk()
root.geometry("400x400")
root.title("Keyword Rank Crawler")

여기서는 창 크기를 400x400으로 설정하고 "키워드 순위 크롤러"라는 제목을 지정합니다.

다음으로 웹 사이트에서 추출한 키워드를 저장할 목록 키워드_list를 정의합니다.

keyword_list = []

 

이제 실제 크롤링을 수행할 함수 크롤()을 정의합시다:

def crawl():
    while len(keyword_list) < 10:
        response = requests.get("https://www.nate.com/")
        soup = BeautifulSoup(response.text, "html.parser")
        keywords = soup.select(".ik .txt_rank")
        
        for i in range(len(keywords)):
            keyword = keywords[i].get_text()
            if keyword not in keyword_list:
                keyword_list.append(keyword)
        
        time.sleep(1)

기서, 우리는 웹사이트 https://www.nate.com/에 HTTP GET 요청을 하고 그 응답을 변수 응답에 저장한다. 그런 다음 아름다운 soup 라이브러리를 사용하여 웹 사이트의 HTML을 분석하고 가변 soup에 저장합니다.

다음으로, 우리는 select() 방법과 CSS 선택기 ".ik.txt_rank"를 사용하여 웹사이트에서 키워드를 추출합니다..

select() 메서드는 지정된 CSS 셀렉터와 일치하는 모든 요소의 목록을 반환합니다. 이 경우에는 키워드입니다.

그런 다음 이 키워드 목록을 반복하여 각 키워드를 키워드_list에 추가합니다.

마지막으로, 우리는 시간을 이용하여 1초의 지연을 삽입합니다.짧은 시간 내에 웹 사이트에 너무 많은 요청을 하지 않도록 하기 위한 sleep() 방법.

다음으로 GUI에 키워드를 표시할 함수 show_keywords()를 정의합니다:

def show_keywords():
    for i in range(len(keyword_list)):
        label = Label(root, text=f"Rank {i + 1}: {keyword_list[i]}")
        label.pack()

 

공부하며 아주 간단하게 작성한 실행결과 입니다. 아직 화면 레이아웃 정리하는 방법은....차차 알아 가겠습니다..ㅎㅎㅎ

반응형