2010-01-04 70 views
9

我有一個關於python機械化的代理支持的問題。我正在製作一些Web客戶端腳本,並且我想將代理支持功能插入到我的腳本中。Python的機械化代理支持

舉例來說,如果我有:

params = urllib.urlencode({'id':id, 'passwd':pw}) 
rq = mechanize.Request('http://www.example.com', params) 
rs = mechanize.urlopen(rq) 

如何添加代理支持到我的機械化腳本? 每當我打開這個www.example.com網站,我希望它通過代理。

回答

9

您使用mechanize.Request.set_proxy(主機類型)(至少爲0.1.11)

假設HTTP代理在本地主機上運行:8888

req = mechanize.Request("http://www.google.com") 
req.set_proxy("localhost:8888","http") 
mechanize.urlopen(req) 

應工作。

29

我不確定是否有幫助,但您可以在mechanize代理瀏覽器上設置代理設置。

br = Browser() 
# Explicitly configure proxies (Browser will attempt to set good defaults). 
# Note the userinfo ("joe:[email protected]") and port number (":3128") are optional. 
br.set_proxies({"http": "joe:[email protected]:3128", 
       "ftp": "proxy.example.com", 
       }) 
# Add HTTP Basic/Digest auth username and password for HTTP proxy access. 
# (equivalent to using "joe:[email protected]" form above) 
br.add_proxy_password("joe", "password") 
+0

嗨,感謝您的回覆,但是這是mechanize.browser模塊,這是一些不同的我尋找的方法,即時尋找機械化.urlopen方法感謝 – paul 2010-01-04 07:40:43

+0

br.add_proxy_password()不再工作。 – 2015-11-23 01:26:47