빅데이터 전문가 되기
Python을 활용한 Wordcloud (네이버 뉴스) 본문
앞서, 네이버 뉴스를 Crawling한 것을 이용하여 Wordcloud를 해보겠습니다.
이 전에 네이버 뉴스를 Crawling 한 내용입니다.
Python을 활용한 Crawling (네이버 뉴스)
앞서, Python을 활용하여 지식백과를 Crawling을 하였습니다. Python을 활용한 Crawling (네이버 지식백과) 키워드 검색을 통해 연관검색어, 검색어의 뜻에 대하여 알 수 있도록 지식백과를 Crawling해보겠
hi-210.tistory.com
네이버 뉴스에서 Crawling은 제목, 링크, 내용에 대하여 가져왔지만 wordcloud는 링크를 제외한 제목과 내용에 대하여만 이용하도록 하겠습니다.
이번에도 키워드는 딸기로 설정하여 해보겠습니다.
👉 Crawling을 활용한 Wordcloud
# 라이브러리 활성화
import requests
import matplotlib.pyplot as plt
import numpy as np
from konlpy.tag import Okt
from collections import Counter
from wordcloud import WordCloud
from bs4 import BeautifulSoup
from PIL import Image
from urllib.parse import quote
def wordcloud(keyword):
query = quote(keyword)
url=f"https://search.naver.com/search.naver?where=news&sm=tab_jum&query={query}"
res=requests.get(url)
soup=BeautifulSoup(res.text,"html.parser")
hdline=soup.find("ul",{"class":"list_news"})
lis=hdline.findAll("li")
result=[]
for li in lis:
try:
title=li.find("a",{"class":"news_tit"}).get_text()
body=li.find("a",{"class":"api_txt_lines dsc_txt_wrap"}).get_text()
result.append(title+""+body)
except:
pass
# 기사에서 명사 추출
nlp=Okt()
nouns=nlp.nouns("".join(result))
# 명사들의 빈도수 계산
count=Counter(nouns)
# 가장 높은 빈도의 300개 키워드를 저장
top_keywords=dict(count.most_common(300))
# 제외할 단어들을 제거합니다.
for word in exclude_words:
if word in top_keywords:
del top_keywords[word]
# 폰트 파일의 경로로 수정
FONT_PATH = r'C:\Users\sd\anaconda3\pkgs\notebook-6.4.12-py39haa95532_0\Lib\site-packages\notebook\static\components\MathJax\jax\output\HTML-CSS\fonts\NanumGothic.ttf'
wc=WordCloud(background_color="white",width=800,height=800,random_state=43, font_path=FONT_PATH)
wc.generate_from_frequencies(top_keywords)
plt.rcParams['font.family'] = 'NanumGothicLight'
plt.figure(figsize=(8,8))
plt.imshow(wc)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
keyword=input("키워드를 입력해주세요. ")
exclude_words = input("제외할 단어들을 입력해주세요. (공백으로 구분)").split()
wordcloud(keyword)
- 네이버 뉴스에서 명사들을 전체 추출합니다.
- 이 후 가장 많은 빈도의 300개의 명사를 추출하였습니다.
- 이때 폰트가 깨지거나 오류가 나오게 된다면 아래를 참고하세요.
Crawling시 한글 깨짐 현상 해결
Crawling을 할 때 한글이 깨지는 현상이 나타날 수 있습니다. 저 또한 한글 깨짐 현상으로 인하여 문제해결법에 대하여 열심히 찾아보았습니다. 아래는 제가 한글 깨짐 현상이 나타났던 문제의 코
hi-210.tistory.com
'Python' 카테고리의 다른 글
Crawling시 한글 깨짐 현상 해결 (0) | 2023.07.02 |
---|---|
Python을 활용한 Crawling (네이버 뉴스) (0) | 2023.07.02 |
Python을 활용한 Crawling (네이버 지식백과) (0) | 2023.07.02 |
Python을 활용한 구구단 만들기(for문) (0) | 2023.07.02 |
Google Bigquery 데이터 적재 (0) | 2023.06.21 |
Comments