【问题标题】:How to assign to workers a proxy that requires user name - password and a custom user agent?如何为工作人员分配需要用户名 - 密码和自定义用户代理的代理?
【发布时间】: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 线程的目标:

  1. 了解如何分配需要用户名/密码的代理
  2. 将自定义用户代理分配给同一工作人员。

使用 Selenium、带有 Python 绑定的 PhantomJS 驱动程序。

最终目标是为每个工作人员分配一个唯一的 ip,并从用户代理池中提取。为此创建逻辑我仍然很乐观,但授权代理目前正在踢我。

如您所知,我对这一切都很陌生,并且希望能针对这个特定问题提供任何帮助和示例。

谢谢!

编辑:以下接受的答案不正确。无法重现以下解决方案。仅将具有授权的代理分配给驱动程序。仍然无法将代理和用户代理分配给同一个驱动程序。

任何帮助或指导将不胜感激。

EDIT.02:问题已解决。这从来都不是编码问题。服务器级别的新代理提供程序分配了覆盖上述脚本的默认 UA。删除后一切都很好。

【问题讨论】:

    标签: python-2.7 selenium-webdriver phantomjs gevent ghostdriver


    【解决方案1】:

    按所需功能分配用户代理

    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。删除后一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多