【问题标题】:Using Mechanize for Scraping, encountered HTTP Error 403使用 Mechanize 进行抓取,遇到 HTTP 错误 403
【发布时间】:2016-01-01 05:20:05
【问题描述】:

得到后

mechanize._response.httperror_seek_wrapper:HTTP 错误 403:请求 robots.txt 不允许

使用 Mechanize 时,添加了来自 Screen scraping: getting around "HTTP Error 403: request disallowed by robots.txt" 的代码以忽略 robots.txt,但现在收到此错误:

mechanize._response.httperror_seek_wrapper:HTTP 错误 403:禁止

有没有办法解决这个错误?

(当前代码)

br = mechanize.Browser()
br.set_handle_robots(False)

【问题讨论】:

    标签: python web-scraping mechanize robots.txt


    【解决方案1】:

    在上面发布的两行当前代码下面添加这行代码解决了我遇到的问题:

    br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
    

    【讨论】:

      【解决方案2】:

      HTTP 错误 403:robots.txt 不允许请求

      在这里令人困惑并且在语义上是错误的。这不是服务器返回的 HTTP 403 错误,而是来自客户端基于解析 robots.txt 文件的虚构/硬编码 403

      这个库违背了最基本的 HTTP 规范。 HTTP 错误是由 HTTP 服务器为客户端的权限而创建的。它们不应该由客户创建。这就像在高速公路上走错路并为此责备其他司机。

      【讨论】:

        猜你喜欢
        • 2023-01-07
        • 2022-06-15
        • 2013-09-04
        • 2013-01-29
        • 2020-12-20
        • 2016-08-18
        • 1970-01-01
        • 2012-05-12
        • 1970-01-01
        相关资源
        最近更新 更多