반응형

Daum 뉴스 기사 본문 크롤링 - BeautifulSoup
들어가며
Daum(다음) 뉴스는 HTML 크롤링이 가능하고, BeautifulSoup을 사용하여 본문 텍스트를 추출할 수 있습니다. 이 글에서는 파이썬으로 뉴스 기사 제목과 기사 본문을 크롤링하는 방법을 소개합니다.
Daum 다음 뉴스 크롤링
Daum 다음 뉴스 URL 구조
Daum 뉴스는 다음과 같이 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 변수를 확인하면, <h3> 태그의 tit_view 부분이 기사 제목입니다.

soup의 find를 활용하여 <h3> 태그의 tit_view 부분의 텍스트를 추출합니다.
title = soup.find("h3", class_="tit_view").get_text()
title

기사 본문 추출
기사의 본문은 div 태그 중 클래스가 article_view인 부분입니다. 다음과 같이 soup에서 find를 사용하여 텍스트를 추출합니다.
content = soup.find("div", class_="article_view").get_text()
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)
반응형
'Python' 카테고리의 다른 글
[파이썬] 내장함수 str - len, split, replace (0) | 2025.04.03 |
---|---|
[파이썬] 히트맵 그래프, 원하는 색상 설정 - seaborn, matplotlib (4) | 2025.04.02 |
[파이썬] 특정 폴더 안의 확장자별 파일 리스트 생성 - os.listdir() (2) | 2025.03.28 |
[파이썬] 특정 키워드 네이버 뉴스 크롤링 - BeautifulSoup (12) | 2025.03.27 |
[파이썬] 데이터 건수, 평균, 최대/최소값 집계 - pandas groupby (6) | 2025.03.27 |