ホームページ > バックエンド開発 > Python チュートリアル > ローテーションプロキシを使用した Web スクレイピング: Python リクエストと Selenium を使用した例

ローテーションプロキシを使用した Web スクレイピング: Python リクエストと Selenium を使用した例

DDD
リリース: 2024-11-01 13:01:29
オリジナル
673 人が閲覧しました

Web スクレイピングにローテーション プロキシを使用することは、特に Web サイトに頻繁にアクセスする必要がある場合や、クローラー対策メカニズムをバイパスする必要がある場合に効果的な方法です。プロキシをローテーションすると、IP アドレスが自動的に変更されるため、ブロックされるリスクが軽減されます。

以下は、Python のリクエスト ライブラリと Web スクレイピング用の 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 を使用する場合は、メモリ リークやその他の問題を避けるために、ブラウザ ウィンドウの終了とリソースの解放の処理に注意してください。
法的紛争を避けるために、ターゲット Web サイトの robots.txt ファイルとクロール契約に従ってください。

以上がローテーションプロキシを使用した Web スクレイピング: Python リクエストと Selenium を使用した例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート