proxy - Google API + 代理 + httplib2

标签 proxy google-api python-requests google-analytics-api httplib2

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

--> 我的脚本在没有任何代理的情况下完美运行。

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

关注 httplib2文档 1我试过:

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

但它没有用。
无论有没有代理信息,我总是收到超时错误(因此不考虑参数中的 proxy_info)

我也在PySocks下载了socks package (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: (元组索引超出范围)

同时,
当我使用 包裹,这个简单的代码完美运行 :
os.environ["HTTP_PROXY"] = "http://user:pwd@someproxy:80"
req = requests.get("http://www.google.com")

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

最佳答案

而不是使用 Python2,我认为你最好尝试使用 httplib2shim

您可以在我的博客上查看本教程:
https://dinatam.com/fr/python-3-google-api-proxy/

简单来说,只需替换这种代码:

from httplib2 import Http
http_auth = credentials.authorize(Http())

通过这个:
import httplib2shim
http_auth = credentials.authorize(httplib2shim.Http())

关于proxy - Google API + 代理 + httplib2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36784437/

相关文章:

javascript - 打开 onclick 事件 python requests 库

Python:如何发送多个 HTTP 请求并接收响应?

python - 如何在请求 python 中禁用主机名检查

apache - 我可以将一些确切的远程 URL 映射到具有不同端口的本地 URL

node.js - 接受 SSL 流量的 Node http 代理端口号

c# - 抛出的异常似乎阻塞了其他线程

c++ - QNetworkProxy 中的 Socks4 代理支持

javascript - 如何使用API​​ V3获取chanel封面?

javascript - 在本地提供 Google No Captcha reCaptcha 的 api.js 是否会阻止正确的行为?

javascript - 自动刷新 Google OAuth2 token