[파이썬] 웹 스크래핑 루프와 저장

웹 스크래핑은 웹 페이지에서 정보를 추출하는 프로세스를 의미합니다. 파이썬을 사용하여 웹 스크래핑을 수행하는 것은 간단하고 효과적입니다. 이 글에서는 웹 스크래핑을 위한 루프를 만들고, 추출한 데이터를 저장하는 방법에 대해 알아보겠습니다.

웹 스크래핑 루프

먼저, 필요한 패키지를 가져옵니다. BeautifulSouprequests는 웹 스크래핑에 널리 사용되는 라이브러리입니다.

import requests
from bs4 import BeautifulSoup

다음으로, 스크래핑할 웹 페이지의 URL을 정의합니다.

url = "https://www.example.com"

웹 페이지의 HTML 코드를 가져오기 위해 requests.get() 함수를 사용합니다.

response = requests.get(url)
html = response.text

BeautifulSoup을 사용하여 HTML 코드를 구문 분석합니다.

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

이제 HTML 코드에서 필요한 데이터를 추출하는 루프를 만들어 보겠습니다. 이 예시에서는 웹 페이지의 제목과 링크를 추출합니다.

for link in soup.find_all("a"):
    title = link.get("title")
    href = link.get("href")
    print("Title:", title)
    print("Link:", href)
    print()

데이터 저장

추출한 데이터를 저장하는 방법은 여러 가지가 있습니다. 여기에는 몇 가지 대표적인 방법을 소개하겠습니다.

CSV 파일로 저장

CSV(comma-separated values) 파일은 데이터를 쉼표로 구분하여 저장하는 파일 형식입니다. csv 라이브러리를 사용하여 데이터를 CSV 파일로 저장할 수 있습니다.

import csv

data = [
    ["Title 1", "Link 1"],
    ["Title 2", "Link 2"],
]

with open("data.csv", "w") as csv_file:
    writer = csv.writer(csv_file)
    writer.writerows(data)

텍스트 파일로 저장

텍스트 파일에 데이터를 저장하는 것은 간단합니다. write() 함수를 사용하여 데이터를 파일에 작성할 수 있습니다.

with open("data.txt", "w") as text_file:
    for item in data:
        text_file.write(item[0] + " - " + item[1] + "\n")

데이터베이스에 저장

데이터를 영구적으로 저장할 필요가 있는 경우, 데이터베이스를 사용할 수 있습니다. 여러 가지 데이터베이스 시스템 중 SQLite를 예시로 들어보겠습니다. sqlite3 모듈을 사용하여 SQLite 데이터베이스에 연결하고 데이터를 삽입할 수 있습니다.

import sqlite3

conn = sqlite3.connect("data.db")
cursor = conn.cursor()

cursor.execute("CREATE TABLE IF NOT EXISTS data (title TEXT, link TEXT)")

for item in data:
    cursor.execute("INSERT INTO data VALUES (?, ?)", item)

conn.commit()
conn.close()

마무리

이제 파이썬을 사용하여 웹 스크래핑을 위한 루프를 만들고, 추출된 데이터를 저장하는 방법을 알게 되었습니다. 데이터를 효과적으로 분석하거나 활용하기 위해 적절한 저장 방법을 선택하는 것이 중요합니다.

다양한 웹 스크래핑 기술을 익혀서 정보를 추출하고 데이터를 활용해보세요!