如何在 Selenium 中使用代理
Selenium 中的 Chrome 不接受在 --proxy-server 參數中使用使用者名稱和密碼。最簡單的方法是使用 selenium-wire,它會為你處理登入。
步驟
- 使用 pip install selenium-wire 安裝 selenium-wire
- 在 seleniumwire_options 中傳遞包含使用者名稱和密碼的 proxy URL
- 啟動驅動程式並開啟目標頁面
- 使用 session id 以保持整個測試期間的固定 IP
範例程式碼
from seleniumwire import webdriver
proxy = "http://USERNAME-cc-ca:PASSWORD@gw.gbproxies.cc:10000"
driver = webdriver.Chrome(seleniumwire_options={
"proxy": {"http": proxy, "https": proxy, "no_proxy": "localhost,127.0.0.1"}
})
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()將USERNAME和PASSWORD替換為控制台Proxies頁面中的代理登入資訊。端口10000是住宅HTTP代理;各產品端口請見下方。
提示
- 使用 Chrome 偏好設定關閉圖片以節省 GB
- 每個固定 session 運行一個驅動程式
常見問題
我可以使用純 Selenium 而不需要額外套件嗎?
Chrome 需要擴充功能或 selenium-wire 來處理代理登入;Firefox 可以從設定檔中讀取憑證。