Ubuntu VM 上的 Python 脚本无法连接到 Twitter API

标签 python api ubuntu twitter

我在 Windows XP PC 上使用带有 VitualBox 的 Ubuntu 12。我正在使用代理访问互联网。
我可以使用 Firefox 浏览这些网站,并查看以下脚本:

import urllib2
import json

proxy = urllib2.ProxyHandler({'http': 'http://my-proxy-server:80'})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
urllib2.install_opener(opener)

#conn = urllib2.urlopen('http://python.org')
return_str = conn.read()
print return_str

上面的代码一切顺利,但对于下面的类似代码不起作用。
import urllib2
import json

proxy = urllib2.ProxyHandler({'http': 'http://my-proxy-server:80'})
auth = urllib2.HTTPBasicAuthHandler()
opener = urllib2.build_opener(proxy, auth, urllib2.HTTPHandler)
urllib2.install_opener(opener)


response = urllib.urlopen('https://api.twitter.com/1.1/search/tweets.json?q=microsoft')
print json.load(response)

错误日志如下。
Traceback (most recent call last):
  File "print.py", line 12, in <module>
    conn = urllib2.urlopen('https://api.twitter.com/1.1/search/tweets.json?q=microsoft')
  File "/usr/lib/python2.7/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1215, in https_open
    return self.do_open(httplib.HTTPSConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1177, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 113] No route to host>

请帮帮我。谢谢。

最佳答案

尝试创建一个 https 处理程序,看看是否能解决问题。

更改此行:

proxy = urllib2.ProxyHandler({'http': 'http://my-proxy-server:80'})


proxy = urllib2.ProxyHandler({'https': 'http://my-proxy-server:80'})  

看看这是否有效,因为您尝试访问的 Twitter API 是通过 HTTPS 进行的。

关于Ubuntu VM 上的 Python 脚本无法连接到 Twitter API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17441413/

相关文章:

python - 将 @property 装饰器与 @asyncio.coroutine 一起使用而不可能产生 yield from 吗?

python - 检查列 pyspark df 的值是否存在于其他列 pyspark df

javascript - 错误 : Expected undefined to be a GraphQL schema

python - 如何通过终端在 Linux Ubuntu 中打开 Anaconda Navigator

linux - Matlab(Linux): mp4 video loading

python - 迭代Python中多个列表中的所有值组合

python - 使用Scrapy和Crawlera抓取HTTPS页面

javascript - 如何使用 spotify web api 获取用户的播放列表列表?

api - 使用 oauth2_access_token 在linkedIn 中获取连接

java - 如何从java程序运行没有密码的sudo命令?