>  기사  >  백엔드 개발  >  회전 프록시를 사용한 웹 스크래핑: Python 요청 및 Selenium을 사용한 예

회전 프록시를 사용한 웹 스크래핑: Python 요청 및 Selenium을 사용한 예

DDD
DDD원래의
2024-11-01 13:01:29588검색

웹 스크래핑을 위해 순환 프록시를 사용하는 것은 특히 웹사이트에 자주 액세스해야 하거나 크롤러 방지 메커니즘을 우회해야 하는 경우 효과적인 방법입니다. 순환 프록시는 IP 주소를 자동으로 변경하므로 차단 위험을 줄일 수 있습니다.

다음은 웹 스크래핑을 위해 Python의 요청 라이브러리 및 Selenium과 함께 회전 프록시를 사용하는 예입니다.

요청 라이브러리 사용

‌1. 필요한 라이브러리를 설치하세요‌:

먼저 요청 라이브러리를 설치해야 합니다.

2. 순환 프록시 구성:

로테이션 프록시 서비스 제공업체로부터 API 키 또는 프록시 목록을 받아 요청에서 구성해야 합니다.

Web Scraping with Rotating Proxies: An Example with Python Requests and Selenium

3. 요청 보내기‌:

요청 라이브러리를 사용하여 HTTP 요청을 보내고 프록시를 통해 전달합니다.

샘플 코드:

import requests 
from some_rotating_proxy_service import get_proxy  # Assuming this is the function provided by your rotating proxy service 

#Get a new proxy 
proxy = get_proxy() 

# Set the proxy's HTTP and HTTPS headers (may vary depending on the proxy service's requirements) 
proxies = { 
    'http': f'http://{proxy}', 
    'https': f'https://{proxy}' 
} 

# Sending a GET request 
url = 'http://example.com' 
try: 
    response = requests.get(url, proxies=proxies) 
    # Processing Response Data 
    print(response.text) 
except requests.exceptions.ProxyError: 
    print('Proxy error occurred') 
except Exception as e: 
    print(f'An error occurred: {e}') 

셀레늄 사용

‌1. 필요한 라이브러리 및 드라이버 설치:

Selenium 라이브러리와 브라우저용 WebDriver(예: ChromeDriver)를 설치하세요.

2. 순환 프록시 구성‌:

요청과 마찬가지로 순환 프록시 서비스 공급자로부터 프록시 정보를 가져와 Selenium에서 구성해야 합니다.

‌3. 브라우저를 시작하고 프록시를 설정하십시오.

Selenium을 사용하여 브라우저를 실행하고 브라우저 옵션을 통해 프록시를 설정하세요.

샘플 코드:

from selenium import webdriver 
from selenium.webdriver.chrome.options import Options 
from some_rotating_proxy_service import get_proxy  # Assuming this is the function provided by your rotating proxy service 

# Get a new proxy 
proxy = get_proxy() 

# Set Chrome options to use a proxy 
chrome_options = Options() 
chrome_options.add_argument(f'--proxy-server=http://{proxy}') 

# Launch Chrome browser 
driver = webdriver.Chrome(options=chrome_options) 

# Visit the website 
url = 'http://example.com' 
driver.get(url) 

# Processing web data 
# ...(For example, use driver.page_source to get the source code of a web page, or use driver to find a specific element.) 

# Close the browser 
driver.quit() 

주의할 점

교대 프록시 서비스가 안정적이고 잦은 IP 변경 및 차단을 방지할 수 있도록 충분한 프록시 풀을 제공하는지 확인하세요.
순환 프록시 서비스의 가격 및 사용 제한에 따라 스크래핑 작업을 적절하게 계획하세요.
Selenium을 사용할 때 메모리 누수나 기타 문제를 방지하려면 브라우저 창 닫기 및 리소스 해제 처리에 주의하세요.
법적 분쟁을 피하기 위해 대상 웹사이트의 robots.txt 파일 및 크롤링 계약을 준수하세요.

위 내용은 회전 프록시를 사용한 웹 스크래핑: Python 요청 및 Selenium을 사용한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.