如何限制stormcrawler中的爬行深度
how to limit the crawling depth in stormcrawler
我的用例是仅每天从网站的任何页面和外链(仅存在于该页面上)中提取文本。例如我想抓取此页面上 (https://www.indiatimes.com/news/world) 的所有链接。这每天给我很少的新鲜新闻文章。这个页面上每天有大约 30-40 篇新闻文章链接,我想抓取并存储在我的数据库中。
这些是我目前的一些配置 -
这里是爬虫部分-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。
我的用例是仅每天从网站的任何页面和外链(仅存在于该页面上)中提取文本。例如我想抓取此页面上 (https://www.indiatimes.com/news/world) 的所有链接。这每天给我很少的新鲜新闻文章。这个页面上每天有大约 30-40 篇新闻文章链接,我想抓取并存储在我的数据库中。
这些是我目前的一些配置 -
这里是爬虫部分-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。