[파이썬] 웹 스크래핑과 운송 정보 추출

웹 스크래핑은 인터넷 상의 다양한 웹 페이지에서 정보를 추출하는 프로세스입니다. 이는 파이썬을 사용하여 구현할 수 있으며, 특히 운송 정보 추출과 같이 실시간으로 변하는 데이터를 수집하는 데 유용합니다. 이번 포스트에서는 웹 스크래핑을 사용하여 운송 정보를 추출하는 방법에 대해 알아보겠습니다.

1. 필요한 라이브러리 설치

먼저, 웹 스크래핑을 위해 필요한 라이브러리를 설치해야 합니다. 파이썬에서 가장 많이 사용되는 웹 스크래핑 라이브러리는 BeautifulSouprequests입니다. 다음의 명령어를 사용하여 설치할 수 있습니다:

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 등을 사용할 수 있습니다. 이를 통해 정기적으로 웹 스크래핑 프로세스를 실행하고 운송 정보를 최신 상태로 유지할 수 있습니다.

이처럼 파이썬을 사용하여 웹 스크래핑과 운송 정보 추출을 수행할 수 있습니다. 이를 통해 실시간으로 업데이트되는 운송 정보를 손쉽게 수집하여 활용할 수 있습니다.