【问题标题】:Python mechanize set_proxies and internet options proxy settingsPython 机械化 set_proxies 和互联网选项代理设置
【发布时间】:2013-12-29 13:41:10
【问题描述】:

我不确定是什么问题。我有一个使用 mechanize 打开网页的脚本。我想为此设置代理。

我可以的

br.set_proxies({'http':'proxyip:port'})

当我尝试打开网页时,它会超时。

但是,如果我不使用上面的代理选项,而是在 windows 的 Internet 选项中设置相同的代理,在连接中,使用代理,脚本将工作并通过代理打开网页。

什么给了? 机械化代理支持究竟是如何工作的?它是否基于互联网选项代理设置? 如果是这样,为什么在 mechanize 中使用 set_proxies 选项? 是否可以有一个单独的机械化代理,并且与互联网选项不同(如果有的话)或者即使 IOpt 中没有设置代理也可以工作。

任何帮助表示赞赏。

【问题讨论】:

    标签: python proxy mechanize


    【解决方案1】:

    除了您提到的步骤之外,您还必须使用您的凭据进行身份验证(如果需要),以使用 http-proxy。否则 mechanize 知道使用代理,但不知道如何进行身份验证。 更多详情见:mechanizeDoc

    br = mechanize.Browser()
    # Explicitly configure proxies (Browser will attempt to set good defaults).
    # Note the userinfo ("joe:password@") and port number (":3128") are optional.
    br.set_proxies({"http": "joe:password@myproxy.example.com:3128",
    "ftp": "proxy.example.com",
                    })
    # Add HTTP Basic/Digest auth username and password for HTTP proxy access.
    # (equivalent to using "joe:password@..." form above)
    # not necessary if credentials are not required
    br.add_proxy_password("joe", "password")
    

    您还必须检查您的防火墙是否配置为通过代理的流量标题。在 Windows 下,您可能还会遇到可以从浏览器发送流量的情况,因为这是在防火墙中配置的(作为源程序)。

    除此之外,您还可以使用多个代理,因为机械化代理不依赖于其他配置。

    【讨论】:

    • 嗨,我的代理不需要身份验证。我认为在这种情况下我不需要使用 add_proxy_password ,对吗?
    • 没有。在这种情况下,您不需要 add_proxy_password()。请发布您的代码生成的 Traceback。
    • 文件“prodman.py”,第 84 行,登录文件“mechanize_mechanize.pyc”,第 203 行,打开文件“mechanize_mechanize.pyc”,第 230 行,_mech_open 文件“mechanize_opener.pyc” ,第 193 行,打开文件“mechanize_urllib2_fork.pyc”,第 344 行,_open 文件“mechanize_urllib2_fork.pyc”,第 332 行,_call_chain 文件“mechanize_urllib2_fork.pyc”,第 1142 行,http_open 文件“mechanize_urllib2_fork.pyc”,行1118,在 do_open urllib2.URLError:
    • 我建议你检查一下你的防火墙,看看它是否受到 IE 使用代理设置的影响。也许您必须配置防火墙以确保通过机械化发送的流量。配置 IE 时,由于工作脚本的原因,听起来像那样。
    • 还有这个traceback。与上述ae 230类似,在_mech_open文件“mechanize_opener.pyc”第193行,在打开文件“mechanize_urllib2_fork.pyc”第344行,在_open文件“mechanize_urllib2_fork.pyc”中,第332行,在_call_chain文件“mechanize_urllib2_fork.pyc ",第 1142 行,在 http_open 文件中 "mechanize_urllib2_fork.pyc",第 1118 行,在 do_open urllib2.URLError:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    相关资源
    最近更新 更多