웹 스크래핑과 BeautifulSoup

2023. 11. 8. 20:23개발 문서/Python

728x90
반응형

웹 스크래핑(Web Scraping)은 웹 사이트에서 정보를 추출하거나 수집하는 프로세스를 나타냅니다. Python에서 웹 스크래핑을 수행하는데 사용되는 라이브러리 중 하나가 BeautifulSoup입니다. BeautifulSoup은 HTML 및 XML 문서에서 데이터를 추출하고 구문 분석하는 파이썬 라이브러리로, 웹 스크래핑 작업을 단순화합니다.

아래는 BeautifulSoup을 사용한 웹 스크래핑의 기본적인 단계와 예제 코드입니다:

1. BeautifulSoup 설치:

먼저 BeautifulSoup을 설치해야 합니다. 아래의 명령으로 BeautifulSoup4를 설치할 수 있습니다:

pip install beautifulsoup4

2. requests 라이브러리 설치:

BeautifulSoup와 함께 웹 사이트에서 데이터를 다운로드하기 위해 requests 라이브러리를 사용할 수 있습니다. 이 라이브러리를 설치하려면 다음 명령을 실행하십시오:

pip install requests

3. 웹 페이지 가져오기:

먼저 requests를 사용하여 웹 페이지의 HTML을 가져와야 합니다:

import requests

url = "https://example.com"
response = requests.get(url)

if response.status_code == 200:
    html = response.text
else:
    print("페이지를 가져올 수 없습니다.")

4. BeautifulSoup로 파싱:

HTML 문서를 BeautifulSoup를 사용하여 파싱하고 데이터를 추출할 수 있습니다:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'html.parser')

# 예시: 제목 태그에서 텍스트 추출
title = soup.title.text
print(f"웹 페이지 제목: {title}")

5. 웹 페이지에서 원하는 데이터 추출:

BeautifulSoup를 사용하여 웹 페이지에서 원하는 데이터를 추출할 수 있습니다. 웹 페이지의 HTML 구조를 이해하고 원하는 요소를 찾는 방법을 알고 있어야 합니다.

# 예시: 모든 링크의 텍스트와 URL을 추출
links = soup.find_all('a')
for link in links:
    link_text = link.text
    link_url = link.get('href')
    print(f"링크 텍스트: {link_text}")
    print(f"링크 URL: {link_url}")

6. 데이터 저장 및 분석:

추출한 데이터를 분석하거나 저장할 수 있습니다. 예를 들어, 데이터베이스에 저장하거나 CSV 파일로 내보낼 수 있습니다.

# 예시: 데이터를 CSV 파일로 저장
import csv

with open('data.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(['링크 텍스트', '링크 URL'])
    for link in links:
        link_text = link.text
        link_url = link.get('href')
        writer.writerow([link_text, link_url])

BeautifulSoup를 사용하면 웹 스크래핑 작업을 쉽게 수행할 수 있으며, 웹 페이지의 구조를 파악하고 원하는 데이터를 추출하는 도구로 유용합니다.

'개발 문서 > Python' 카테고리의 다른 글

RESTful API와 JSON 처리  (0) 2023.11.09
데이터베이스 연동(SQLite, MySQL)  (0) 2023.11.08
데이터 시각화(Matplotlib, Seaborn)  (0) 2023.11.08
NumPy와 배열 처리  (0) 2023.11.08
모듈과 패키지  (0) 2023.11.08