我希望Python在使用urllib
時忽略Windows代理設置。我設法做到的唯一方法是禁用Internet Explorer上的所有代理設置。有沒有程序化的方法?如何忽略python urllib的windows代理設置?
os.environ['no_proxy']
不是一個好的選擇,因爲我想避免代理所有地址。
我希望Python在使用urllib
時忽略Windows代理設置。我設法做到的唯一方法是禁用Internet Explorer上的所有代理設置。有沒有程序化的方法?如何忽略python urllib的windows代理設置?
os.environ['no_proxy']
不是一個好的選擇,因爲我想避免代理所有地址。
從urlib2 documentation:類urllib2.ProxyHandler([代理])...要禁用自動檢測的代理傳遞一個空字典。
所以我們想要做的是這樣的:
import urllib2
proxy = urllib2.ProxyHandler({}) # Pass empty dictionary to bypass proxy
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
socket = urllib2.urlopen('http://www.google.com')
content = socket.read()
這對python 3.5不起作用。我嘗試使用urllib.request代替urllib2,因爲庫更改並且代碼確實運行了,但是當urlopen執行時它仍然試圖訪問代理。下面的systempuntoout的答案適用於我的案例。 – DelboyJay 2016-06-08 09:21:08
我很難做出請求忽略代理。 這些沒有奏效。
proxies=None or proxies={}
這做工作S.Mark的回答
proxies={'http':None}
見註釋,請 – mcrisc 2010-04-15 13:28:45
你試過第二個解決方案? – systempuntoout 2010-04-15 17:37:16
第二個解決方案確實有效。和'urllib.getproxies = lambda x = None:{}'應該在文檔說的'import urllib'之後加上。 – Nancy 2016-05-06 09:22:32