2
首先,我不是在尋找代碼,只是一個關於主題說的方法的簡單討論。網頁更新檢測算法
我最近想知道如何檢測(儘可能快)更改網站頁面的最佳方式,假設我有100K個網站,每個網頁的頁面數量都不明確,爬蟲確實需要訪問每個頁面,他們中的每一個曾經有一段時間?
首先,我不是在尋找代碼,只是一個關於主題說的方法的簡單討論。網頁更新檢測算法
我最近想知道如何檢測(儘可能快)更改網站頁面的最佳方式,假設我有100K個網站,每個網頁的頁面數量都不明確,爬蟲確實需要訪問每個頁面,他們中的每一個曾經有一段時間?
除非他們有RSS源(您仍然需要查看它們是否發生了變化),但確實無法找出網站何時發生變化,除非進行檢查。然而,你可以做一些聰明的事情來提高效率。在您檢查了一段時間之後,您可以建立一個預測模型,瞭解它們何時趨向更新。例如:這個新聞網站每2-3小時更新一次,但該博客每週只發布一篇文章。這可以爲您節省很多檢查,因爲大多數網頁實際上並不經常更新。谷歌這樣做有助於拉動。一個簡單的算法,將這項工作(取決於邊緣如何切割你需要你的新聞是)是我自己設計的基於二進制搜索如下:
Start each site off with a time interval ~ 1 day
Visit the sites when that time hits and check changes
if something has changed
halve the time for that site
else
double the time for that site
If after many iterations you find it hovering around 2-3 numbers
fix the time on the greater of the numbers
現在,這是一個簡單的算法,發現該次對於檢查是正確的,但如果您解析文本並在實際發佈更新時看到模式,則可以做更有效的工作。