[파이썬] Beautiful Soup 4 웹 스크레이핑을 위한 프록시 사용

웹 스크레이핑은 인터넷에서 데이터를 수집하는 강력한 도구입니다. 그러나 일부 웹 사이트는 스크레이핑을 방지하기 위해 IP 주소 제한 또는 차단을 실시할 수 있습니다. 이러한 경우 프록시 서버를 사용하여 스크레이핑을 수행할 수 있습니다.

프록시는 중계 서버로, 웹 사이트와의 통신을 대리하여 IP 주소를 숨기고 익명으로 웹 페이지에 액세스할 수 있게 해줍니다. Beautiful Soup 4는 웹 스크레이핑을 위한 훌륭한 라이브러리이며, 프록시를 사용하여 웹 스크레이핑을 더욱 효과적이고 안전하게 수행할 수 있습니다.

프록시 설정

먼저, 프록시 서버를 사용하기 위해 프록시 IP 주소와 포트 번호를 설정해야 합니다. 아래의 예제 코드에서는 proxy_ipproxy_port 변수에 프록시 서버의 IP 주소와 포트 번호를 할당합니다.

import requests

proxy_ip = "123.45.67.89"
proxy_port = 8080

proxies = {
    "http": f"http://{proxy_ip}:{proxy_port}",
    "https": f"https://{proxy_ip}:{proxy_port}",
}

response = requests.get("https://www.example.com", proxies=proxies)

이 예제에서는 requests 라이브러리를 사용하여 HTTP 또는 HTTPS 프록시를 설정합니다. proxies 변수에 httphttps 프록시를 설정하고 있습니다. 그리고 requests.get() 함수를 호출할 때 proxies 옵션을 추가하여 프록시를 적용합니다.

Beautiful Soup 4와 함께 프록시 사용

프록시를 사용하여 웹 페이지에 액세스한 후, Beautiful Soup 4를 사용하여 HTML 데이터를 추출하는 것이 가능합니다. 아래의 예제 코드는 프록시를 사용하여 웹 페이지에 액세스한 후, Beautiful Soup 4를 사용하여 페이지의 제목을 추출합니다.

from bs4 import BeautifulSoup
import requests

proxy_ip = "123.45.67.89"
proxy_port = 8080

proxies = {
    "http": f"http://{proxy_ip}:{proxy_port}",
    "https": f"https://{proxy_ip}:{proxy_port}",
}

response = requests.get("https://www.example.com", proxies=proxies)

soup = BeautifulSoup(response.content, "html.parser")
title = soup.title.text

print(title)

위의 코드를 실행하면 해당 웹 페이지의 제목이 출력됩니다. 이제 프록시를 사용하여 웹 스크레이핑 작업을 수행할 수 있습니다.

프록시를 사용하는 것은 웹 스크레이핑을 안전하게 수행하는 한 가지 방법입니다. 그러나 해당 웹 사이트의 서비스 약관에 위배될 수 있으므로 항상 해당 웹 사이트의 정책을 확인하고 합법적인 목적으로만 사용해야 합니다.