ign*_*low 10 python proxy urllib2 environment-variables
我使用代理集作为环境变量(export http_proxy = example.com).对于使用urllib2的一个调用,我需要暂时禁用它,即.取消设置http_proxy.我已经尝试了文档和互联网中建议的各种方法,但到目前为止一直无法取消代理.到目前为止,我尝试过:
# doesn't work
req = urllib2.Request('http://www.google.com')
req.set_proxy(None,None)
urllib2.urlopen(req)
# also doesn't work
urllib.getproxies = lambda x = None: {}
Run Code Online (Sandbox Code Playgroud)
urllib2文档表明以下内容应该有效.这是你尝试过的方法之一吗?
import urllib2
proxy_handler = urllib2.ProxyHandler({})
opener = urllib2.build_opener(proxy_handler)
page = opener.open('http://www.google.com')
Run Code Online (Sandbox Code Playgroud)
您可以在要禁用系统代理的代码之前放置它.
import urllib2
urllib2.getproxies = lambda: {}
Run Code Online (Sandbox Code Playgroud)
有时它比创建空更好,ProxyHandler因为它适用于外部库,即使它们创建自己的urllib2开启者.
另外可能的方法是使用contextmanager装饰器临时禁用代理,但我不能打赌它可以使用多线程:
import selenium
import urllib2
from contextlib import contextmanager
@contextmanager
def no_proxies():
orig_getproxies = urllib2.getproxies
urllib2.getproxies = lambda: {}
yield
urllib2.getproxies = orig_getproxies
with no_proxies():
driver = selenium.webdriver.Ie()
driver.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)
在此示例中,我们阻止python-selenium使用系统代理设置,这会导致如下错误:
无法在IE Internet选项中运行代理设置的IEDriverServer.exe
| 归档时间: |
|
| 查看次数: |
8195 次 |
| 最近记录: |