我目前正在运行的脚本googleapiclient植酮包拉从谷歌Analytics的数据(即基于httplib2客户对象)谷歌API +代理+ httplib2的
- >我的脚本的作品完美,没有任何代理。
但我必须把它放在我的公司代理之后,所以我需要调整我的httplib2.Http()对象来嵌入代理信息。
继httplib2的文档1我想:
pi = httplib2.proxy_info_from_url('http://user:[email protected]:80')
httplib2.Http(proxy_info=pi).request("http://www.google.com")
但没有奏效。 我总是超时错误,使用或不使用代理信息(参数所以proxy_info不考虑)
我pysocks包(v1.5.6)也下载了袜子,并试图“wrapmodule” httplib2的作为在这里描述: https://github.com/jcgregorio/httplib2/issues/205
socks.setdefaultproxy(socks.PROXY_TYPE_HTTP, "proxyna", port=80, username='p.tisserand', password='Telematics12')
socks.wrapmodule(httplib2)
h = httplib2.Http()
h.request("http://google.com")
但我得到一个IndexError:(数组索引超出范围)
在此期间, 当我使用requests包,这个简单的代码WO RKS完美:
os.environ["HTTP_PROXY"] = "http://user:[email protected]:80"
req = requests.get("http://www.google.com")
的问题是,需要以适应googleapiclient要求,并提供一个htpplib2.Http()客户对象。
能否更精确地描述您的解决方案? – Liso
确实!我有一个脚本与Python 3.4失败,但运行良好的Python 2.7。行为上唯一的区别似乎是,pyhon 3.4试图直接连接到谷歌,而在2.7以下它正确地通过代理。 – chutz
absolutly - @Liso在Python 3中没有考虑到代理信息。*但在Python 2. * – Phil27