2011-01-19 148 views
2

我正在使用http代理和Mechanize模塊。我初始化機械化對象,並設置代理,像這樣:代理似乎被機械化忽略?

self.br = mechanize.Browser() 
self.br.set_proxies({"http": proxyAddress}) #proxy address is like 1.1.1.1:8080 

然後我打開該網站,像這樣:

response = self.br.open("http://google.com") 

我的問題是機械化似乎完全無視代理。如果我調試並檢查br對象,在代理處理程序下,我可以看到我的代理設置。然而,即使我給了一個糟糕的代理機械化只是去做它的業務,就像我從來沒有設置代理。是什麼賦予了?

編輯: 我也曾嘗試:

mechanize.install_opener(mechanize.build_opener(mechanize.ProxyHandler({'http': "127.0.0.1:99"}))) 
response = mechanize.urlopen("http://google.com") 

它似乎忽略了我的代理也是如此。 (我甚至沒有給它一個合法的代理,它不應該失敗,在URLError?)

+0

人有一個想法?我也發佈在郵件列表中,但尚未得到回覆。 – Wes 2011-01-21 22:02:53

回答

1

想通了說話的郵件列表後:

import mechanize 
browser = mechanize.Browser() 
browser.set_proxies(proxies={"http": "myproxy.example.com:1234"}, 
       proxy_bypass=lambda hostname: False) 
+1

我試過了,但機械化仍然忽略代理。 – John 2013-03-06 08:06:56