Web スクレイピングにローテーション プロキシを使用することは、特に Web サイトに頻繁にアクセスする必要がある場合や、クローラー対策メカニズムをバイパスする必要がある場合に効果的な方法です。プロキシをローテーションすると、IP アドレスが自動的に変更されるため、ブロックされるリスクが軽減されます。
以下は、Python のリクエスト ライブラリと Web スクレイピング用の Selenium でローテーション プロキシを使用する例です。
まず、リクエスト ライブラリをインストールする必要があります。
循環プロキシ サービス プロバイダーから API キーまたはプロキシ リストを取得し、リクエストでそれらを構成する必要があります。
リクエスト ライブラリを使用して 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}')
ブラウザの Selenium ライブラリと WebDriver (ChromeDriver など) をインストールします。
リクエストと同様に、循環プロキシ サービス プロバイダーからプロキシ情報を取得し、Selenium で設定する必要があります。
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 を使用する場合は、メモリ リークやその他の問題を避けるために、ブラウザ ウィンドウの終了とリソースの解放の処理に注意してください。
法的紛争を避けるために、ターゲット Web サイトの robots.txt ファイルとクロール契約に従ってください。
以上がローテーションプロキシを使用した Web スクレイピング: Python リクエストと Selenium を使用した例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。