如何在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替换为控制台代理页面中的登录信息。端口10000是住宅HTTP代理;请查看下方每个产品的端口。
提示
- 关闭Chrome偏好设置中的图片以节省GB
- 为每个粘性会话运行一个驱动程序
常见问题
我可以使用普通的Selenium而不需要额外的包吗?
Chrome需要扩展或selenium-wire来处理代理登录;Firefox可以从配置文件中读取凭据。