Python机械化set_proxies和互联网选项代理设置

时间:2013-12-29 13:41:11

标签: python proxy mechanize

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

我能做到

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

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

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

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

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

除了您提到的步骤之外,您还必须使用您的凭据进行身份验证(如果需要),以便使用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下,您可能还会体验到可以从浏览器发送流量,因为这是在防火墙中配置的(作为源程序)。

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