我想将selenium与受密码保护的代理一起使用。代理不是固定的,而是一个变量。所以这必须在代码中完成(仅仅在这台特定的机器上设置firefox来使用代理并不理想)。到目前为止,我有以下代码:
fp = webdriver.FirefoxProfile()
# Direct = 0, Manual = 1, PAC = 2, AUTODETECT = 4, SYSTEM = 5
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", PROXY_HOST)
fp.set_preference("network.proxy.http_port", PROXY_PORT)
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://whatismyip.com")
此时,弹出请求代理用户/通行证的对话框。
有没有简单的方法:
从selenium githubrepo中的单元测试中获得灵感之后。这对我有效:
硒本身不能做到这一点。我发现唯一有用的方法是描述here。简而言之,您需要动态添加一个浏览器扩展来进行身份验证。这比看起来简单得多。
以下是Chrome的工作原理(在我的例子中):
背景.js
不要忘记将您的代理替换为您的设置。
manifest.json
将创建的proxy.zip添加为扩展名
就这样。对我来说这是一种魅力。如果需要动态创建proxy.zip或需要PHP示例,请转到original post
代码对我有用
相关问题 更多 >
编程相关推荐