簡體   English   中英

如何限制stormcrawler中的爬行深度

[英]how to limit the crawling depth in stormcrawler

我的用例是僅每天從網站的任何頁面和外鏈(僅存在於該頁面上)中提取文本。 例如,我想抓取此頁面上存在的( https://www.indiatimes.com/news/world )的所有鏈接。 這給了我每天幾篇新鮮的新聞文章。 每天這個頁面上大約有 30-40 個新聞文章鏈接,我想抓取並存儲在我的數據庫中。

這些是我現在擁有的一些配置-

這是 crawler-conf.yaml 的一部分 -

  parser.emitOutlinks: true
  perser.emitOutlinks.max.per.page: 0
  track.anchors: true
  metadata.track.path: true
  metadata.track.depth: true

這是 urlfilters.json 的一部分-

 {
         "class":  "com.digitalpebble.stormcrawler.filtering.depth.MaxDepthFilter",
          "name": "MaxDepthFilter",
           "params": {
             "maxDepth": 0
                   }
 }

在這些配置上,這個例如頁面提供了超過 35000 次點擊。 它會抓取我不需要的整個網站。 它從外鏈獲得越來越多的 url。 如果我將 maxdepth 參數更改為 1 或 0 或 2,爬行的行為保持不變。 maxdepth 參數是否適合此用例? 我想將爬行的這種遞歸性質限制為僅種子 URL 和種子 url 的外鏈。 maxdepth 參數實際上是什么意思? 我應該怎么做才能限制爬網的擴展。

我正在使用 stromcrawler 1.16。

這正是最大深度過濾器的用途。 請記住,您需要使用mvn clean package重建您的 JAR 以使對 urlfilters.json 的任何更改生效。

如果您在解析頁面時不想要任何外鏈,只需在配置中將parser.emitOutlinks設置為 false。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM