【发布时间】:2010-05-19 19:57:58
【问题描述】:
当我尝试使用 urllib.urlopen 下拉网页时,我遇到了错误。我已经禁用了 Windows 防火墙和我的 AV,所以不是这样。我可以在浏览器中访问这些页面。我什至重新安装了 python 以排除它是一个损坏的 urllib。任何帮助将不胜感激。
>>> import urllib
>>> h = urllib.urlopen("http://www.google.com").read()
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
h = urllib.urlopen("http://www.google.com").read()
File "C:\Python26\lib\urllib.py", line 86, in urlopen
return opener.open(url)
File "C:\Python26\lib\urllib.py", line 205, in open
return getattr(self, name)(url)
File "C:\Python26\lib\urllib.py", line 344, in open_http
h.endheaders()
File "C:\Python26\lib\httplib.py", line 904, in endheaders
self._send_output()
File "C:\Python26\lib\httplib.py", line 776, in _send_output
self.send(msg)
File "C:\Python26\lib\httplib.py", line 735, in send
self.connect()
File "C:\Python26\lib\httplib.py", line 716, in connect
self.timeout)
File "C:\Python26\lib\socket.py", line 514, in create_connection
raise error, msg
IOError: [Errno socket error] [Errno 10061] No connection could be made because the target machine actively refused it
>>>
【问题讨论】:
-
对我有用,可能是你的请求让谷歌超载,他们把你打断了一段时间
-
我尝试加载的任何网址都不会发生这种情况。
-
哦,嗯。您的防火墙中没有代理或其他东西,或者奇怪的端口?
-
好吧,我关闭了我的软件防火墙。而且我的路由器不能阻止它,因为我可以从浏览器访问页面。你说的代理是什么意思?有没有什么地方可以在 pythons 配置中设置代理?
-
您使用的是 Linux 吗?尝试运行 strace python yourscript.pl 看看你会得到什么。