【发布时间】:2013-06-11 15:39:58
【问题描述】:
如何使用 Selenium、带有 Python 绑定的 PhantomJS 驱动程序为工作人员分配需要用户名 - 密码和自定义用户代理的代理。
我在创建许多遍历我的测试网站的工作人员方面取得了巨大成功。我还可以分配不需要授权的用户代理或代理。但是我还没有想出如何同时对同一个工人做这两个。
然而,目前真正的问题是为需要用户名和密码授权的工作人员分配代理。
玩家: Selenium 2.33.0 / PhantomJS 1.9.1 / Python 2.7.3 / Ubuntu 12.04
我: 努贝。 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、带有 Python 绑定的 PhantomJS 驱动程序。
最终目标是为每个工作人员分配一个唯一的 ip,并从用户代理池中提取。为此创建逻辑我仍然很乐观,但授权代理目前正在踢我。
如您所知,我对这一切都很陌生,并且希望能针对这个特定问题提供任何帮助和示例。
谢谢!
编辑:以下接受的答案不正确。无法重现以下解决方案。仅将具有授权的代理分配给驱动程序。仍然无法将代理和用户代理分配给同一个驱动程序。
任何帮助或指导将不胜感激。
EDIT.02:问题已解决。这从来都不是编码问题。服务器级别的新代理提供程序分配了覆盖上述脚本的默认 UA。删除后一切都很好。
【问题讨论】:
标签: python-2.7 selenium-webdriver phantomjs gevent ghostdriver