我正在爲Ruby編寫一個爬網程序,並且我想要承認服務器發出的頭文件以使爬網更有效。在Ruby中確定頁面是否需要由客戶端重新下載的方式有一個簡單的方法嗎?我知道我需要考慮至少這些標題:檢查網頁是否被修改/已過期用Ruby
- 最後修改
- ETag時
- 緩存控制
- 過期
什麼是確定如此明確的方式 - 是地方指定?
我正在爲Ruby編寫一個爬網程序,並且我想要承認服務器發出的頭文件以使爬網更有效。在Ruby中確定頁面是否需要由客戶端重新下載的方式有一個簡單的方法嗎?我知道我需要考慮至少這些標題:檢查網頁是否被修改/已過期用Ruby
什麼是確定如此明確的方式 - 是地方指定?
你說得對,你需要看一下頭,但你需要考慮的是,服務器是什麼設置這些。如果它們設置正確,那麼你可以使用它們來做出決定,但它們都不是必需的。
就我個人而言,我可能會開始追蹤expires的值,因爲我在做初始下載時,以及記錄etag。最後,我會看看最後一次修改,就像我做了下一步,假設過期或etag顯示了一些信號,表明我可能需要重新下載(或者如果它們甚至沒有設置)。我不希望緩存控制是有用的。
你想了解在Net::HTTP
的head
方法 - http://www.ruby-doc.org/stdlib/