[파이썬] 웹 스크래핑과 뉴스 기사 추출

소개

웹 스크래핑은 웹 페이지의 내용을 자동으로 수집하는 기술로, 데이터 분석, 정보 수집, 자동화 작업 등 다양한 분야에서 활용됩니다. 특히 뉴스 기사 추출은 웹 스크래핑의 대표적인 활용 사례 중 하나입니다. 이번 블로그 포스트에서는 Python을 사용한 웹 스크래핑을 통해 뉴스 기사를 추출하는 방법에 대해 알아보겠습니다.

라이브러리 설치

웹 스크래핑을 위해 먼저 필요한 라이브러리를 설치해야 합니다. Python에서 웹 스크래핑을 도와주는 라이브러리로 BeautifulSoupRequests가 주로 사용됩니다. 아래의 명령어를 사용해 두 개의 라이브러리를 설치합니다.

pip install beautifulsoup4 requests

웹 스크래핑 코드 작성하기

import requests
from bs4 import BeautifulSoup

# 웹 페이지에 접속하여 HTML 소스코드를 얻는다.
url = "https://www.example.com"
response = requests.get(url)
html_source = response.text

# HTML 소스코드를 파싱하여 원하는 정보를 추출한다.
soup = BeautifulSoup(html_source, "html.parser")
title = soup.title.text

# 추출한 정보를 출력한다.
print("Title:", title)

위의 코드는 requests를 사용하여 웹 페이지에 접속한 후, BeautifulSoup을 사용하여 HTML 소스코드를 파싱하여 원하는 정보를 추출하는 예시입니다. 이 코드에서는 웹 페이지의 타이틀을 추출하여 출력하고 있습니다.

뉴스 기사 추출하기

이제 실제로 뉴스 기사를 추출하는 방법을 알아보겠습니다. 대표적인 뉴스 웹 사이트 중 하나인 BBC 뉴스를 예시로 사용하겠습니다.

import requests
from bs4 import BeautifulSoup

# BBC 뉴스 웹 페이지에 접속하여 HTML 소스코드를 얻는다.
url = "https://www.bbc.co.uk/news"
response = requests.get(url)
html_source = response.text

# HTML 소스코드를 파싱하여 뉴스 기사 제목을 추출한다.
soup = BeautifulSoup(html_source, "html.parser")
article_titles = soup.find_all("h3")

# 추출한 뉴스 기사 제목을 출력한다.
for title in article_titles:
    print(title.text)

위의 코드는 BBC 뉴스 웹 페이지의 HTML 소스코드를 파싱하여 뉴스 기사 제목을 추출하는 예시입니다. soup.find_all("h3")를 사용하여 HTML 소스코드에서 <h3> 태그를 찾아 뉴스 기사 제목을 추출하고, 이를 반복문을 통해 출력하고 있습니다.

결론

이번 포스트에서는 Python을 사용하여 웹 스크래핑을 통해 뉴스 기사를 추출하는 방법에 대해 알아보았습니다. 웹 스크래핑은 다양한 분야에서 유용하게 활용될 수 있으며, 뉴스 기사 추출을 통해 실제 데이터를 다루는 예시를 살펴보았습니다. Python의 BeautifulSoupRequests 라이브러리를 통해 간단하게 웹 스크래핑을 할 수 있으니, 이를 바탕으로 다양한 데이터 추출 작업을 실행해보시기 바랍니다.