Can';我无法在Python 2.7中使用urlopen

Can';我无法在Python 2.7中使用urlopen,python,python-2.7,urllib,httplib,Python,Python 2.7,Urllib,Httplib,我正试着按照你的建议去做,但没有用。在这一点上,我只想执行一个非常简单的测试,以确保我确实从我试图打开的站点返回了数据。对于我的简单测试,我试图打开YahooWeatherAPI。我已经验证了在web浏览器中键入此地址确实会返回数据。我已经尝试了这两个代码段,但都不起作用 import urllib params = urllib.urlencode({'w': 2482950}) f = urllib.urlopen("http://weather.yahooapis.com/forecas

我正试着按照你的建议去做,但没有用。在这一点上,我只想执行一个非常简单的测试,以确保我确实从我试图打开的站点返回了数据。对于我的简单测试,我试图打开YahooWeatherAPI。我已经验证了在web浏览器中键入此地址确实会返回数据。我已经尝试了这两个代码段,但都不起作用

import urllib

params = urllib.urlencode({'w': 2482950})
f = urllib.urlopen("http://weather.yahooapis.com/forecastrss?%s" % params)
print f.read()
这个例子直接来自Python网站。这将伴随着:

IOError:[Errno套接字错误][Errno 110]连接超时

我还尝试过像这样使用httplib:

import httplib

conn = httplib.HTTPConnection(host='weather.yahooapis.com', timeout=10)
req = '/forecastrss?w=2482950'
try:
    conn.request('GET',req)
except:
    print "Didn't work"

content = conn.getresponse().read()
print content
尝试此操作会导致以下错误:

  self.fp = sock.makefile('rb', 0)
AttributeError: 'NoneType' object has no attribute 'makefile'

似乎我从未连接到远程主机。你知道我做错了什么吗?

问题确实出在防火墙上。我添加了以下代码以使其正常工作:

proxy_support = urllib2.ProxyHandler({"http":"http://<proxy>:<port>"})
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)

html = urllib2.urlopen(url).read()
print html
proxy\u support=urllib2.ProxyHandler({“http”:“http://:”})
opener=urlib2.build\u opener(代理\u支持)
urllib2.install_opener(opener)
html=urllib2.urlopen(url.read())
打印html

这两个示例对我都适用。您的计算机是否启用了防火墙?如果是这样的话,它允许Python可执行文件进行网络连接吗?有防火墙,但我的同事使用Python进行网络连接。但现在我想起来了,他们正在连接内部网站。。。也许这就是我的问题。