Google API +代理+ httplib2

Phi*_*l27 6 proxy google-api httplib2 google-analytics-api python-requests

我目前正在运行一个脚本,使用 Phyton包(基于客户端对象)从Google Analytics中提取数据

- >我的脚本完美无需任何代理.

但我必须把它放在我的公司代理之后,所以我需要调整我的httplib2.Http()对象来嵌入代理信息.

在httplib2 doc 1之后,我试过:

pi = httplib2.proxy_info_from_url('http://user:pwd@someproxy:80')
httplib2.Http(proxy_info=pi).request("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

但它没有用.我总是得到一个超时错误,有或没有代理信息(因此不考虑参数中的proxy_info)

我还在包(v1.5.6)中下载了socks 并尝试"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")
Run Code Online (Sandbox Code Playgroud)

但我得到一个IndexError :(元组索引超出范围)

与此同时,当我使用包时,这个简单的代码完美地运行:

os.environ["HTTP_PROXY"] = "http://user:pwd@someproxy:80"
req = requests.get("http://www.google.com")
Run Code Online (Sandbox Code Playgroud)

问题是需要符合googleapiclient要求并提供htpplib2.Http()客户端对象.

Phi*_*l27 1

我决定用 Python 2 重新编码我的 Web 应用程序,仍然使用 httplib2 包。现在考虑代理信息。现在可以了。

  • 的确!我有一个脚本在 python 3.4 中失败,但在 python 2.7 中运行良好。行为上的唯一区别似乎是,在 pyhon 3.4 中,它会尝试直接连接到 Google,而在 2.7 中,它会正确地通过代理。 (2认同)