【发布时间】:2011-02-08 09:03:25
【问题描述】:
我希望 Python 在使用 urllib 时忽略 Windows 代理设置。我设法做到这一点的唯一方法是禁用 Internet Explorer 上的所有代理设置。有什么程序化的方式吗?
os.environ['no_proxy'] 不是一个好选择,因为我想避免代理所有地址。
【问题讨论】:
我希望 Python 在使用 urllib 时忽略 Windows 代理设置。我设法做到这一点的唯一方法是禁用 Internet Explorer 上的所有代理设置。有什么程序化的方式吗?
os.environ['no_proxy'] 不是一个好选择,因为我想避免代理所有地址。
【问题讨论】:
来自 urlib2 documentation: Class urllib2.ProxyHandler([proxies]) ... 要禁用自动检测代理,请传递一个空字典。
所以我们要做的是:
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()
【讨论】:
我无法让请求忽略代理。 这些都不起作用。
proxies=None or proxies={}
这确实有效
proxies={'http':None}
【讨论】:
根据document,您可以通过,proxies=None 或 proxies={}
urllib.urlopen(some_url, proxies=None)
【讨论】:
proxies=some_value 似乎扩展了已知代理列表而不是覆盖它。
os.environ['http_proxy']=None 怎么样?
proxies={}