如何使用Selenium,带有Python绑定的PhantomJS驱动程序为工作人员分配需要用户名的代理 - 密码和自定义用户代理。
我在创建遍布测试网站的许多工作人员方面取得了很大的成功。我还可以分配不需要授权的用户代理或代理。但我还没弄明白如何同时对同一个工人做两件事。
然而,目前的真正问题是为需要用户名和密码授权的工作人员分配代理。
球员: Selenium 2.33.0 / PhantomJS 1.9.1 / Python 2.7.3 / Ubuntu 12.04
我: NUBE。 Python周,Linux天,Selenium小时,PhantomJS - =,SO首发
搜索结果: How do I set a proxy for phantomjs/ghostdriver in python webdriver?
答案实际上可能存在于我和其他许多地方,我已阅读并重新阅读,但我无法将这些点连接到目前的水平。
使用此方法解决了用户代理。
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (
"Any User Agent string here”)
driver = webdriver.PhantomJS(desired_capabilities=dcap)
代理没有授权适用于此:
service_args = [
'--proxy=127.0.0.1:9999',
'--proxy-type=http,
]
driver = webdriver.PhantomJS('/usr/local/bin/phantomjs,service_args=service_args)
如果使用上述两种方法,我不确定如何将代理和UA都传递给PhantomJS驱动程序。 ATM我只能做一个或另一个,并且根本不需要授权的代理。
此SO主题的目标:
使用Selenium,PhantomJS驱动程序和Python绑定。
最终游戏目标是为每个工作人员分配一个唯一的IP并从用户代理池中提取。为此创建逻辑我仍然乐观,但授权的代理正在踢我。
正如你所知,我对这一切都很陌生,并希望对这个特殊问题有任何帮助和例子。
谢谢!
编辑:以下接受的答案不正确。无法重现以下解决方案。只有具有授权的代理才会分配给驱动程序。仍然无法将代理和用户代理分配给同一个驱动程序。
非常感谢任何帮助或指示。
EDIT.02:问题已解决。它从来都不是编码问题。服务器级别的新代理提供程序分配了一个默认UA,它覆盖了上述脚本。一旦删除,一切都很好。
答案 0 :(得分:3)
按所需功能分配用户代理
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = (
"Your User Agent String here . . .")
Found API Reference here for the proxy authorization。
将“--proxy-auth = username:password”添加到server_args。喜欢 。 。 。
service_args = [
'--proxy=xxx.xxx.xx.xxx:xxxx',
'--proxy-auth=username:password',
'--proxy-type=http',
]
然后在启动webdriver时使用两者
driver = webdriver.PhantomJS(desired_capabilities=dcap,service_args=service_args)
这解决了我的所有问题。
编辑:无法重现解决方案。只使用上述方法更改代理。
EDIT.02:问题已解决。它从来都不是编码问题。服务器级别的新代理提供程序分配了一个默认UA,它覆盖了上述脚本。一旦删除,一切都很好。