繁体   English   中英

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

[英]Python script on Ubuntu VM can't connect to twitter API

我在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进行的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM