[英]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.