포털 사이트에서 기사 크롤링 하기

Plcb Archive·2024년 2월 6일
0

파이썬

목록 보기
21/22

포털 사이트에서 기사를 크롤링하는 것은 웹 데이터 수집에서 매우 유용한 기술이다. 이를 위해 Python의 Beautiful Soup과 Requests 라이브러리를 사용할 수 있다. 다음은 웹 크롤링의 기본 단계와 이를 통해 기사 제목, 하이퍼링크, 본문 등을 추출하는 방법에 대한 설명이다.

1. 웹 크롤링 기본 환경 준비하기

먼저, 필요한 라이브러리를 설치하고, 대상 웹페이지에 요청을 보낸다.

import requests
from bs4 import BeautifulSoup

url = "http://example.com/news"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

2. 머리 기사 제목 추출하기

특정 구역(예: 머리 기사)의 제목을 추출한다.

headlines = soup.find_all('h1', class_='headline')
for headline in headlines:
    print(headline.get_text())

3. 하이퍼링크 주소 추출하기

기사 제목과 연결된 하이퍼링크 주소를 추출한다.

for headline in headlines:
    link = headline.find('a')['href']
    print(link)

4. 원하는 영역에서 하이퍼링크 모두 추출하기

특정 섹션(예: 메인 뉴스 영역)의 모든 하이퍼링크를 추출한다.

news_section = soup.find('div', class_='news_section')
links = news_section.find_all('a')
for link in links:
    print(link['href'])

5. 기사 제목과 내용 한꺼번에 추출하기

각 기사의 제목과 그에 연결된 본문을 추출한다.

for headline in headlines:
    title = headline.get_text()
    link = headline.find('a')['href']
    article_response = requests.get(link)
    article_soup = BeautifulSoup(article_response.text, 'html.parser')
    content = article_soup.find('div', class_='content').get_text()
    print(title, content)

6. 하이퍼링크된 모든 기사의 제목과 본문 추출하기

링크된 모든 기사의 제목과 본문을 순회하며 추출한다.

for link in links:
    article_url = link['href']
    article_response = requests.get(article_url)
    article_soup = BeautifulSoup(article_response.text, 'html.parser')
    title = article_soup.find('h1').get_text()
    content = article_soup.find('div', class_='content').get_text()
    print(title, content)

위 코드는 예시로, 실제 포털 사이트의 HTML 구조에 따라 클래스 이름과 태그는 달라질 수 있다. 또한, 대량의 웹 크롤링을 할 때는 사이트의 접근 정책을 확인하고, 서버에 과부하를 주지 않도록 주의해야 한다.

0개의 댓글