【问题标题】:Python urllib2, how to avoid errors - need helpPython urllib2,如何避免错误 - 需要帮助
【发布时间】:2011-05-18 04:05:37
【问题描述】:

我正在使用 python urllib2 从网上下载页面。我没有使用任何类型的 user_agent 等。我遇到了以下示例错误。谁能告诉我一个避免它们的简单方法。

http://www.rottentomatoes.com/m/foxy_brown/
The server couldn't fulfill the request.
Error code:  403


http://www.spiritus-temporis.com/marc-platt-dancer-/
The server couldn't fulfill the request.
Error code:  503

http://www.golf-equipment-guide.com/news/Mark-Nichols-(golfer).html!!
The server couldn't fulfill the request.
Error code:  500


http://www.ehx.com/blog/mike-matthews-in-fuzz-documentary!!
We failed to reach a server.
Reason:  timed out
IncompleteRead(5621 bytes read)
Traceback (most recent call last):
    File "download.py", line 43, in <module>
    localFile.write(response.read())
    File "/usr/lib/python2.6/socket.py", line 327, in read
    data = self._sock.recv(rbufsize)
    File "/usr/lib/python2.6/httplib.py", line 517, in read
    return self._read_chunked(amt)
    File "/usr/lib/python2.6/httplib.py", line 563, in _read_chunked
    raise IncompleteRead(value)
IncompleteRead: IncompleteRead(5621 bytes read)

谢谢
巴拉

【问题讨论】:

    标签: python http web-crawler web-scraping


    【解决方案1】:

    许多网络资源需要某种 cookie 或其他身份验证才能访问,您的 403 状态代码很可能是由此产生的结果。

    503 错误往往意味着您正在循环中快速访问服务器中的资源,您需要稍等片刻才能尝试其他访问。

    500 的例子似乎根本不存在......

    超时错误可能不需要“!!”,没有它我只能加载资源。

    我建议您阅读 http 状态代码。

    【讨论】:

      【解决方案2】:

      对于那些更复杂的任务,您可能需要考虑使用机械化、斜纹甚至 Selenium 或 Windmill,它们将支持更复杂的场景,包括 cookie 或 javascript 支持。

      对于随机网站,仅使用 urllib2 可能会很棘手(签名的 cookie,有人吗?)。

      【讨论】:

        猜你喜欢
        • 2011-10-01
        • 2011-09-02
        • 1970-01-01
        • 2018-12-28
        • 2016-05-25
        • 2012-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多