【问题标题】:Python: URLError: <urlopen error [Errno 10060]Python:URLError:<urlopen 错误 [Errno 10060]
【发布时间】:2013-04-04 20:08:04
【问题描述】:

操作系统:Windows 7;使用 Python GUI Shell 的 Python 2.7.3

我正在尝试通过 Python 阅读网站,并且有几位作者使用 urlliburllib2 库。要将站点存储在变量中,我看到了一种类似的方法:

import urllib
import urllib2
g = "http://www.google.com/"
read = urllib2.urlopen(g)

最后一行在 120+ 秒后产生错误:

> Traceback (most recent call last):   File "<pyshell#27>", line 1, in
> <module>
>     r = urllib2.urlopen(o)   File "C:\Python27\lib\urllib2.py", line 126, in urlopen
>     return _opener.open(url, data, timeout)   File "C:\Python27\lib\urllib2.py", line 400, in open
>     response = self._open(req, data)   File "C:\Python27\lib\urllib2.py", line 418, in _open
>     '_open', req)   File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
>     result = func(*args)   File "C:\Python27\lib\urllib2.py", line 1207, in http_open
>     return self.do_open(httplib.HTTPConnection, req)   File "C:\Python27\lib\urllib2.py", line 1177, in do_open
>     raise URLError(err) URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly
> respond after a period of time, or established connection failed
> because connected host has failed to respond>

我尝试绕过g 变量并尝试urlopen("http://www.google.com/") 也没有成功(它在相同的时间长度后产生相同的错误)。

【问题讨论】:

标签: python python-2.7 urllib2 urllib


【解决方案1】:

错误代码 10060 表示它无法连接到远程对等方。这可能是因为网络问题或主要是您的设置问题,例如代理设置。

您可以尝试将同一主机与其他工具(例如 ncat)和/或同一本地网络中的另一台 PC 连接,以找出问题所在。

代理问题,这里有一些材料:

Using an HTTP PROXY - Python

Why can't I get Python's urlopen() method to work on Windows?

希望对你有帮助!

【讨论】:

    【解决方案2】:

    答案(基本是提前!):

    错误:10060 为请求添加超时参数为我解决了这个问题。

    示例 1

    import urllib
    import urllib2
    g = "http://www.google.com/"
    read = urllib2.urlopen(g, timeout=20)
    

    示例 2

    在我发出 GET 请求时也发生了类似的错误。同样,传递 timeout 参数解决了 10060 错误。

    response = requests.get(param_url, timeout=20)
    

    【讨论】:

      【解决方案3】:

      这是因为代理设置。 我也遇到了同样的问题,在这个问题下,我无法使用任何从 Internet 获取数据的模块。 有几个简单的步骤:
      1.打开控制面板
      2.打开互联网选项
      3. 在连接选项卡下打开 LAN 设置
      4. 进入高级设置并取消标记所有内容,删除其中的所有代理。或者您可以取消选中代理服务器中的复选框,这也将执行相同的操作
      5. 保存所有设置点击确定。
      你完成了。 尝试再次运行程序,它必须工作 它至少对我有用

      【讨论】:

      • 没有什么比没有正确的选项卡/选项名称的指令更让我讨厌的了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 2017-11-26
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多