2016-05-17 111 views
3

我是新來抓取並想知道是否可以使用Scrapy逐步抓取CNBC.com等網站?例如,如果今天我從一個網站抓取所有網頁,那麼明天我只想收集新發布到此網站的網頁,以避免抓取所有舊網頁。使用Scrapy遞增抓取網站

謝謝你的任何信息。或在此輸入。

+0

大體上不,你必須刮所有頁面,看看有什麼變化。然而,在某些站點中,您可能會逃過檢索每個文檔的前X個字節(假設服務器支持'Range'查詢)以從'meta'標籤獲取更新時間戳。 – halfer

回答

0

簡答:沒有。

較長的答案:你可以做的是寫文章ID或文章網址到一個文件,並在刮,你可以匹配的id或url與文件中的記錄。

請記住只加載一次文件並將其分配給一個變量。刮時,不要在迭代過程中加載它。

+0

這是做增量爬行的常見做法嗎?我認爲這對於大多數(如果不是全部的話)網絡爬蟲來說是一項常見任務。在這種情況下,每次必須重複訪問之前訪問過的所有頁面。谷歌是否也這樣做?鑑於整個網絡如此龐大,這聽起來像是一項糟糕的工作。 – user697911

+0

谷歌通常從網站的所有者那裏獲取一張網站地圖。大多數爬蟲做的事情基本上都是通過它在網站上找到的所有鏈接。如果它已被抓取,則無關緊要。如果該網站正確完成,那麼文章頁面會包含微型數據片段(電子名片或其他被稱爲),發佈時間戳,評分等。這有助於Google bot很多 –

+0

重複數據刪除發生在後處理步驟那些大公司...不在爬蟲級別。這是他們如何歸因並懲罰重複內容。他們還爲每個網址/域刷新頻率,具體取決於網站上內容更改的速度。他們也不關心站點地圖:-)但他們尊重robots.txt。註釋非常好,我想他們可能會被推廣一段時間,努力將行業向前推進到更好的質量標記,併爲更多的語義內容鋪平道路,但它們對於搜索或識別獨特內容都不是必需的。 – neverlastn

1

是的,你可以,它其實很簡單。每個新聞網站都有一些非常重要的索引頁面,例如主頁和類別(例如政治,娛樂等)。沒有任何文章沒有經過這些頁面至少幾分鐘。每分鐘左右掃描一次這些頁面並保存鏈接。然後用你數據庫中已有的東西進行差異化,每天幾次發佈爬行來抓取所有缺失的鏈接。非常標準的做法。