我们可以只获取网页头信息而不获取正文吗?(Mechanize)
如果我只想在网页自上次下载后没有变化的情况下再下载一次,这该怎么办呢?最好的方法是什么?我可以先获取网页的大小,然后进行比较,看看它是否有变化。如果有变化,我就下载;如果没有变化,就跳过下载?
我打算使用(python)mechanize这个工具。
2 个回答
0
是的,你可以通过这样设置来获取更多关于Python mechanize的信息
br = mechanize.Browser()
br.set_debug_http(True)
br.set_debug_redirects(True)
... Your code here ...
这样做的话,你就能得到页面的一些重要的头部信息
5
请求应该是一个 HEAD 请求,而不是 GET 请求:
9.4 HEAD
HEAD 方法和 GET 方法基本一样,唯一的区别是服务器在回应时不能返回消息主体。对于 HEAD 请求的响应中,HTTP 头部包含的元信息应该和 GET 请求的响应信息相同。
这个方法可以用来获取请求所涉及的实体的元信息,而不需要传输实体的主体内容。通常,这个方法用于测试超链接的有效性、可访问性以及最近的修改情况。
对 HEAD 请求的响应可以被缓存,也就是说,响应中包含的信息可以用来更新之前缓存的实体。如果新的字段值显示缓存的实体和当前实体不同(比如通过 Content-Length、Content-MD5、ETag 或 Last-Modified 的变化来判断),那么缓存必须把这个缓存条目视为过期。
想了解更多,可以查看这里 如何使用 mechanize 库执行 HEAD 请求?