我正在为Ruby编写一个爬网程序,并且我想要承认服务器发出的头文件以使爬网更有效。在Ruby中确定页面是否需要由客户端重新下载的方式有一个简单的方法吗?我知道我需要考虑至少这些标题:检查网页是否被修改/已过期用Ruby
- 最后修改
- ETag时
- 缓存控制
- 过期
什么是确定如此明确的方式 - 是地方指定?
我正在为Ruby编写一个爬网程序,并且我想要承认服务器发出的头文件以使爬网更有效。在Ruby中确定页面是否需要由客户端重新下载的方式有一个简单的方法吗?我知道我需要考虑至少这些标题:检查网页是否被修改/已过期用Ruby
什么是确定如此明确的方式 - 是地方指定?
你说得对,你需要看一下头,但你需要考虑的是,服务器是什么设置这些。如果它们设置正确,那么你可以使用它们来做出决定,但它们都不是必需的。
就我个人而言,我可能会开始追踪expires的值,因为我在做初始下载时,以及记录etag。最后,我会看看最后一次修改,就像我做了下一步,假设过期或etag显示了一些信号,表明我可能需要重新下载(或者如果它们甚至没有设置)。我不希望缓存控制是有用的。
你想了解在Net::HTTP
的head
方法 - http://www.ruby-doc.org/stdlib/