對nutch爬蟲的一些理解
阿新 • • 發佈:2019-02-08
下圖提供網上找來的相關流程圖片,以便於理解:
總結如下:
1) 建立初始 URL 集
2) 將 URL 集註入 crawldb 資料庫---inject
3) 根據 crawldb 資料庫建立抓取列表---generate
4) 執行抓取,獲取網頁資訊---fetch
6) 更新資料庫,把獲取到的頁面資訊存入資料庫中---updatedb
7) 重複進行 3~5 的步驟,直到預先設定的抓取深度。---這個迴圈過程被稱為“產生/抓取/更新”迴圈
8) 根據 sengments 的內容更新 linkdb 資料庫---invertlinks
9) 建立索引---index
-----------------------------------------------------------------------------------------------------------------------
topN n 第一次抓取注入的url的n條url(根據權重分值, 每個url都有一個分數,是根據這個分數來排序的。你可以通過外掛來擴充套件這個ScoreFilter的generatorSortValue來實現對url的排序)。第一層抓取結束後通過解析把第一層抓取到的url(假設每個頁面平均有5個超級連結,則生成5N條新的url)生成新的url集加入到CrawDb中。(如果第一層的url沒有抓完的話,第二層生成的N個url也會有第一層的url)。 然後接著下一層的抓取(迴圈以上操作,depth是就抓取的深度,也就是迴圈的次數)。 ------------------------------------------------------------------------------------------------------------------------------ 手動設定種子網址的url,設定fetchInterval(再次抓取的時間間隔 單位:秒)和score(分數可以在generate的時候提高抓取的機制) http://news.163.com nutch.fetchInterval=xxxx nutch.score=100 (中間是tab不是空格)