【问题标题】:Can we only get the web page header information and not the body? (Mechanize)我们可以只获取网页标题信息而不获取正文吗? (机械化)
【发布时间】:2011-02-13 10:21:33
【问题描述】:

如果我只需要下载自上次下载以来没有更改的页面怎么办? 什么是最好的方法?我可以先得到页面的大小,然后比较决定它是否改变了,如果改变了,我要求下载否则跳过?

我打算使用 (python) mechanize。

【问题讨论】:

    标签: python mechanize screen-scraping


    【解决方案1】:

    请求应该是HEAD,而不是 GET:

    9.4 头部

    HEAD 方法与 GET 相同 除了服务器不能返回 响应中的消息正文。这 HTTP 中包含的元信息 响应 HEAD 请求的标头 应该与信息相同 为响应 GET 请求而发送。 该方法可用于获取 关于实体的元信息 由请求暗示而没有 转移实体主体本身。 这种方法常用于测试 有效性的超文本链接, 可访问性和最近 修改。

    对 HEAD 请求的响应可能是 在某种意义上是可缓存的 响应中包含的信息 可用于更新以前的 来自该资源的缓存实体。如果 新的字段值表明 缓存的实体与当前的不同 实体(如将由 Content-Length、Content-MD5、 ETag 或 Last-Modified),然后是缓存 必须将缓存条目视为陈旧的。

    看到这里How can I perform a HEAD request with the mechanize library

    【讨论】:

      【解决方案2】:

      是的,您可以通过这样的设置获得更多关于 python mechanize 的信息

      br = mechanize.Browser()
      br.set_debug_http(True)
      br.set_debug_redirects(True)
      ... Your code here ...
      

      通过这样做,您可以获得页面的有价值的标题信息

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-19
        相关资源
        最近更新 更多