如何在Selenium中使用代理
Selenium中的Chrome不接受--proxy-server標誌中的用戶名和密碼。最簡單的方法是使用selenium-wire,它會為您處理登錄。
步驟
- 使用pip install selenium-wire安裝selenium-wire
- 在seleniumwire_options中傳遞帶有用戶名和密碼的代理URL
- 啟動驅動程序並打開目標頁面
- 使用會話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頁面上的proxy登錄信息。端口10000是住宅HTTP;請查看下方每個產品的端口。
提示
- 使用Chrome偏好設置關閉圖片以節省GB
- 為每個固定會話運行一個驅動程序
常見問題
我可以在不使用額外包裝的情況下使用普通Selenium嗎?
Chrome需要擴展或selenium-wire進行代理登錄;Firefox可以從配置文件中讀取憑據。