Selenium と Python を使用して Web スクレイピングや自動化を行う場合、IP 禁止を回避し、データ収集の効率を向上させるには、プロキシの使用が不可欠です。この記事では、Python を使用して Selenium でプロキシを設定および使用する方法について説明します。
Selenium とは何ですか? また、なぜプロキシを使用するのですか?
セレン は、Web ブラウザを自動化するための強力なツールであり、Web スクレイピングや Web アプリケーションのテストによく使用されます。 プロキシ エンドユーザーと閲覧する Web サイトを分離する中間サーバーであり、IP アドレスをマスクしてリクエストの負荷を管理するのに役立ちます。
プロキシを使用した Selenium の設定
コードに取り組む前に、必要なツールがインストールされていることを確認してください。
- パイソン
- セレン(
pip install selenium
) - Web ブラウザ ドライバー (例: Chrome の場合は ChromeDriver、Firefox の場合は GeckoDriver)
Selenium でプロキシを使用するためのステップバイステップガイド
1. プロキシを使用して Chrome を設定する
Chrome でプロキシ サーバーを使用するように設定するには、Selenium で必要な機能を設定する必要があります。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# Specify proxy details
proxy = "your_proxy_ip:port"
# Set up Chrome options
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--proxy-server={proxy}')
# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")
# Close the browser
driver.quit()
認証付きプロキシ
プロキシが認証を必要とする場合は、 Proxy
クラスから selenium.webdriver.common.proxy
.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# Proxy settings
proxy = Proxy()
proxy.proxy_type = ProxyType.MANUAL
proxy.http_proxy = "your_proxy_ip:port"
proxy.ssl_proxy = "your_proxy_ip:port"
proxy.add_argument('--proxy-auth=user:password')
capabilities = webdriver.DesiredCapabilities.CHROME
proxy.add_to_capabilities(capabilities)
# Initialize WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), desired_capabilities=capabilities)
# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")
# Close the browser
driver.quit()
プロキシでFirefoxを使用する
Firefox でプロキシを使用するように設定するには、Firefox プロファイル設定を変更します。
from selenium import webdriver
from selenium.webdriver.firefox.service import Service
from webdriver_manager.firefox import GeckoDriverManager
# Proxy details
proxy_ip = "your_proxy_ip"
proxy_port = "port"
# Set up Firefox profile
profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", proxy_ip)
profile.set_preference("network.proxy.http_port", int(proxy_port))
profile.set_preference("network.proxy.ssl", proxy_ip)
profile.set_preference("network.proxy.ssl_port", int(proxy_port))
# Initialize WebDriver
driver = webdriver.Firefox(service=Service(GeckoDriverManager().install()), firefox_profile=profile)
# Open a website to verify the proxy
driver.get("http://whatismyipaddress.com")
# Close the browser
driver.quit()
よくある問題のトラブルシューティング
プロキシ認証: プロキシにログインが必要な場合は、資格情報が正しく設定されていることを確認してください。
IPブロッキング: 一部の Web サイトではプロキシがブロックされる可能性があります。この問題を軽減するには、住宅用プロキシまたはローテーション プロキシを使用してください。
概要
Selenium と Python でプロキシを使用すると、IP 制限を回避し、Web スクレイピング プロジェクトを強化できます。Chrome または Firefox のどちらを使用する場合でも、プロキシを設定するには、トラフィックをプロキシ サーバー経由でルーティングするためのブラウザ オプションと機能を構成する必要があります。
ブラウザ | セットアップ方法 | 認証 | コードスニペットが利用可能 |
---|---|---|---|
クロム | Chromeオプション | はい | はい |
Firefox | Firefox プロファイル | はい | はい |
これらの手順に従うことで、スクレイピング作業が中断されずに効率的に行われるようになります。今後のチュートリアルについてご質問やアイデアがありましたら、お気軽にコメントを残してください。
コメント (0)
まだコメントはありません。あなたが最初のコメントを投稿できます!