Python

[파이썬] Daum 뉴스 기사 제목, 본문 크롤링 - BeautifulSoup

weweGH 2025. 4. 1. 09:00
반응형

다음 뉴스 크롤링
다음 뉴스 크롤링


Daum 뉴스 기사 본문 크롤링 - BeautifulSoup


들어가며


Daum(다음) 뉴스는 HTML 크롤링이 가능하고, BeautifulSoup을 사용하여 본문 텍스트를 추출할 수 있습니다. 이 글에서는 파이썬으로 뉴스 기사 제목과 기사 본문을 크롤링하는 방법을 소개합니다.


Daum 다음 뉴스 크롤링


Daum 다음 뉴스 URL 구조

Daum 뉴스는 다음과 같이 URL 패턴을 갖고 있습니다. 

다음 뉴스 URL 구조
다음 뉴스 URL 구조


URL 설정

크롤링에 필요한 패키지를 import 하고, url 변수에 크롤링할 뉴스 기사의 주소를 저장합니다.

import requests
from bs4 import BeautifulSoup


url = 'https://v.daum.net/v/20250327161803473'

HTTP 요청

requests.get() 함수를 사용해 url에 HTTP GET 요청을 보냅니다.

response = requests.get(url)
반응형

HTML 파싱

response.text를 BeautifulSoup 객체로 변환하여 HTML을 파싱합니다.

해당 기사의 웹페이지를 HTML로 파싱한 결과인 soup를 출력하면 다음 이미지와 같습니다. soup에서 '기사 제목'과 '기사 본문'을 추출할 수 있습니다.

soup = BeautifulSoup(response.text, "html.parser")
soup

soup
soup


기사 제목 추출

위의 soup 변수를 확인하면, <h3> 태그의 tit_view 부분이 기사 제목입니다.

tit_view
tit_view

 

soup의 find를 활용하여 <h3> 태그의 tit_view 부분의 텍스트를 추출합니다.

title = soup.find("h3", class_="tit_view").get_text()
title

title
title


기사 본문 추출

기사의 본문은 div 태그 중 클래스가 article_view인 부분입니다. 다음과 같이 soup에서 find를 사용하여 텍스트를 추출합니다. 

content = soup.find("div", class_="article_view").get_text()
content

content
content


전체 코드


import requests
from bs4 import BeautifulSoup


url = 'https://v.daum.net/v/20250327161803473'


# HTTP 요청
response = requests.get(url)


# HTML 파싱
soup = BeautifulSoup(response.text, "html.parser")
soup


# 기사 제목
title = soup.find("h3", class_="tit_view").get_text()
title


# 기사 본문
content = soup.find("div", class_="article_view").get_text()
content

print("제목:", title)
print("\n본문:", content)

반응형