웹 스크래핑은 웹 페이지에서 정보를 추출하는 프로세스를 의미합니다. 파이썬을 사용하여 웹 스크래핑을 수행하는 것은 간단하고 효과적입니다. 이 글에서는 웹 스크래핑을 위한 루프를 만들고, 추출한 데이터를 저장하는 방법에 대해 알아보겠습니다.
웹 스크래핑 루프
먼저, 필요한 패키지를 가져옵니다. BeautifulSoup과 requests는 웹 스크래핑에 널리 사용되는 라이브러리입니다.
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()
마무리
이제 파이썬을 사용하여 웹 스크래핑을 위한 루프를 만들고, 추출된 데이터를 저장하는 방법을 알게 되었습니다. 데이터를 효과적으로 분석하거나 활용하기 위해 적절한 저장 방법을 선택하는 것이 중요합니다.
다양한 웹 스크래핑 기술을 익혀서 정보를 추출하고 데이터를 활용해보세요!