뉴스에서 웹스크래핑 연습하기
상황: 뉴스 검색을 통해 기사 본문 텍스트와, 관련 단어 빈도수 체크
1) 라이브러리 설치
pip install requests
requests
Python HTTP for Humans.
pypi.org
pip install beautifulsoup4
beautifulsoup4
Screen-scraping library
pypi.org
import requests
from bs4 import BeautifulSoup
from collections import Counter
import re
2) Naver 뉴스 검색 URL과 키워드 설정
base_url = 'https://search.naver.com/search.naver?where=news&sm=tab_jum&query='
keyword = 'gpt'
3) requests를 사용하여 HTML 페이지 가져오기
response = requests.get(base_url+keyword)
html = response.content
4) BeautifulSoup를 사용하여 HTML 페이지 파싱
soup = BeautifulSoup(html, 'html.parser')
5) 기사 본문 텍스트 가져오기
article_texts = []
for info in soup.select('.bx .news_area .news_dsc .dsc_wrap'):
sele_a = info.select("a")
for a in sele_a:
article_url = a['href']
article_text = a.text
article_texts.append(article_text)
6) 기사 본문에서 gpt관련 단어 빈도수 파악하기
gpt_words = ['GPT', 'GPT-5', 'GPT4', 'Generative Pre-trained Transformer']
gpt_word_counts = Counter()
for article_text in article_texts:
for gpt_word in gpt_words:
gpt_word_counts[gpt_word] += len(re.findall(gpt_word, article_text))
7) 결과 출력
print('GPT 관련 단어 빈도수:', gpt_word_counts)

8) 전체코드
import requests
from bs4 import BeautifulSoup
from collections import Counter
import re
# Naver 뉴스 검색 URL과 키워드 설정
base_url = 'https://search.naver.com/search.naver?where=news&sm=tab_jum&query='
keyword = 'gpt'
# requests를 사용하여 HTML 페이지 가져오기
response = requests.get(base_url+keyword)
html = response.content
# BeautifulSoup를 사용하여 HTML 페이지 파싱
soup = BeautifulSoup(html, 'html.parser')
# 기사 본문 텍스트 가져오기
article_texts = []
for info in soup.select('.bx .news_area .news_dsc .dsc_wrap'):
sele_a = info.select("a")
for a in sele_a:
article_url = a['href']
article_text = a.text
article_texts.append(article_text)
# 기사 본문에서 GPT 관련 단어 빈도수 파악하기
gpt_words = ['GPT', 'GPT-4', 'GPT4', 'Generative Pre-trained Transformer']
gpt_word_counts = Counter()
for article_text in article_texts:
for gpt_word in gpt_words:
gpt_word_counts[gpt_word] += len(re.findall(gpt_word, article_text))
# 결과 출력
print('GPT 관련 단어 빈도수:', gpt_word_counts)
뉴스 웹 스크래핑은 다양한 분야에서 활용될 수 있습니다.
일부 예시는 다음과 같습니다:
경제 분석: 뉴스 웹 사이트에서 경제 관련 기사를 스크랩하여 경제 동향을 분석하고 예측하는 데 사용할 수 있습니다.
인사이트 및 트렌드 분석: 스크래핑된 뉴스 데이터에서 키워드와 주요 주제를 추출하여 인사이트 및 트렌드를 파악할 수 있습니다.
매체 모니터링: 스크래핑된 뉴스 데이터를 사용하여 회사나 브랜드에 대한 언급 및 평판을 모니터링 할 수 있습니다.
뉴스 요약 및 분류: 스크래핑된 뉴스 데이터에서 텍스트 요약 기술을 사용하여 뉴스 기사를 간결하게 요약하거나 분류할 수 있습니다.
자동화된 뉴스 보고서 작성: 스크래핑된 뉴스 데이터와 자연어처리 기술을 활용하여 자동화된 뉴스 보고서를 작성할 수 있습니다.
금융 거래 예측: 뉴스 웹 사이트에서 수집한 정보를 기반으로 금융 거래를 예측할 수 있습니다.
범죄 예방 및 경찰 업무: 스크래핑된 뉴스 데이터를 사용하여 범죄 예방 및 경찰 업무를 보조할 수 있습니다.
이외에도 뉴스 웹 스크래핑은 다양한 분야에서 활용될 수 있으며, 이를 활용하는 방법은 계속해서 발전하고 있습니다.