웹 스크래핑은 인터넷 상의 다양한 웹 페이지에서 정보를 추출하는 프로세스입니다. 이는 파이썬을 사용하여 구현할 수 있으며, 특히 운송 정보 추출과 같이 실시간으로 변하는 데이터를 수집하는 데 유용합니다. 이번 포스트에서는 웹 스크래핑을 사용하여 운송 정보를 추출하는 방법에 대해 알아보겠습니다.
1. 필요한 라이브러리 설치
먼저, 웹 스크래핑을 위해 필요한 라이브러리를 설치해야 합니다. 파이썬에서 가장 많이 사용되는 웹 스크래핑 라이브러리는 BeautifulSoup
과 requests
입니다. 다음의 명령어를 사용하여 설치할 수 있습니다:
pip install beautifulsoup4 requests
2. 웹 페이지에서 데이터 가져오기
requests
라이브러리를 사용하여 운송 정보가 포함된 웹 페이지에 GET 요청을 보냅니다. 이를 통해 웹 페이지의 HTML 코드를 가져올 수 있습니다. 예를 들어, 다음과 같은 코드를 사용할 수 있습니다:
import requests
url = "https://www.example.com/transportation"
response = requests.get(url)
html = response.text
3. HTML 파싱하기
BeautifulSoup
라이브러리를 사용하여 가져온 HTML 코드를 파싱하고 원하는 데이터를 추출합니다. 이를 위해서는 웹 페이지의 HTML 구조를 이해하는 것이 중요합니다. HTML 코드에서 필요한 요소들을 선택하기 위해 CSS 선택자나 XPath를 사용할 수 있습니다. 예를 들어, 다음과 같은 코드를 사용하여 특정 운송 정보를 추출할 수 있습니다:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, "html.parser")
transportation_info = soup.select(".transportation-info")
위의 예시에서는 transportation-info
클래스를 가진 요소들을 선택하여 운송 정보를 추출합니다.
4. 추출한 데이터 처리하기
추출한 운송 정보를 필요에 따라 처리하고 저장할 수 있습니다. 예를 들어, 추출한 정보를 데이터베이스에 저장하거나 CSV 파일로 저장할 수 있습니다. 다음은 추출한 정보를 CSV 파일로 저장하는 예시 코드입니다:
import csv
# CSV 파일 열기
with open("transportation_info.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
# 헤더 작성
writer.writerow(["departure", "destination", "time"])
# 데이터 작성
for info in transportation_info:
departure = info.select_one(".departure").text
destination = info.select_one(".destination").text
time = info.select_one(".time").text
writer.writerow([departure, destination, time])
위의 코드는 departure
, destination
, time
필드를 가진 CSV 파일을 생성하고, 추출한 운송 정보를 해당 필드에 쓰는 예시입니다.
5. 자동화 및 스케줄링
마지막으로, 위의 과정을 자동화하고 스케줄링하기 위해 파이썬의 스케줄링 라이브러리인 APScheduler
등을 사용할 수 있습니다. 이를 통해 정기적으로 웹 스크래핑 프로세스를 실행하고 운송 정보를 최신 상태로 유지할 수 있습니다.
이처럼 파이썬을 사용하여 웹 스크래핑과 운송 정보 추출을 수행할 수 있습니다. 이를 통해 실시간으로 업데이트되는 운송 정보를 손쉽게 수집하여 활용할 수 있습니다.