본문 바로가기
Programming/Python

[Python] 매일경제 증권 뉴스 크롤링

by 코딩하는 금융인 2024. 11. 21.

안녕하세요.

저번에 소개드린 파이썬 trafilatura를 활용하여 매일경제 증권 뉴스를 크롤링해보겠습니다.

 

 Python Crawling - 매일경제 증권 뉴스

※ 파이썬 trafiltura에 대하여 포스팅한 글이 있으니, 참고하시기 바랍니다. 

2024.11.17 - [Programming/Python] - [Python] Trafilatura 웹 크롤링 쉽게 하기

 

▣ 매일경제 증권 RSS

: 사이트 바로가기

 - 매일경제는 사이트에서 업데이트된 정보를 쉽게 사용자들에게 제공하기 위해 XML을 기초로 만들어진 데이터 형식인 RSS를 제공함

 - 여러 가지 카테고리의 RSS를 제공하지만, 오늘은 증권에 대한 RSS를 활용하여 50개 뉴스의 제목과 본문을 크롤링해보겠음

URL : https://www.mk.co.kr/rss/50200011/

 (코드 설명)

 - feeds.find_feed_urls(rss_)을 사용하여 rss의 url 50개를 가져옴

 - fetch_url로 url의 html 받고 soup로 제목을 파싱, extract로 본문을 가져옴

 - 제목과 본문을 데이터프레임화하여 excel로 저장

from bs4 import BeautifulSoup
from trafilatura import feeds, fetch_url, extract
import pandas as pd

rss_ = "https://www.mk.co.kr/rss/50200011/"

# url 자동으로 50개 출력
url_list = feeds.find_feed_urls(rss_)
title_list = []
contents_list = []

# 제목 soup으로 파싱, 본문은 extract로 크롤링
for n, f in enumerate(url_list, 1):
    html = fetch_url(f)
    soup = BeautifulSoup(html, 'html.parser')
    title = soup.title.string.strip()
    # 맨 뒤에 - 매일경제 텍스트 제거
    title_list.append(title[:-7])
    text = extract(html)
    contents_list.append(text)

# 데이터프레임 생성
df = pd.DataFrame({
    '제목': title_list,
    '본문': contents_list
})

# Excel 파일로 저장
df.to_excel('output.xlsx', index=False)

 

 - 결과excel 파일로 확인할 수 있음

output.xlsx
0.05MB

반응형

댓글