【问题标题】:how to limit the crawling depth in stormcrawler如何限制stormcrawler中的爬行深度
【发布时间】:2020-06-22 19:57:11
【问题描述】:

我的用例是仅每天从网站的任何页面和外链(仅存在于该页面上)中提取文本。例如我想抓取此页面上存在的 (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。它会抓取我不需要的整个网站。它从外链获得越来越多的网址。 如果我将 maxdepth 参数更改为 1 或 0 或 2,爬行的行为保持不变。 maxdepth 参数是否适合这个用例? 我想将爬行的这种递归性质限制为仅种子 URL 和种子 URL 的外链。 maxdepth 参数实际上是什么意思? 我应该怎么做才能限制爬虫的扩展。

我正在使用 stromcrawler 1.16。

【问题讨论】:

    标签: web-crawler stormcrawler


    【解决方案1】:

    这正是最大深度过滤器的用途。请记住,您需要使用 mvn clean package 重建您的 JAR,以使对 urlfilters.json 的任何更改生效。

    如果您在解析页面时不想要任何外链,只需在配置中将 parser.emitOutlinks 设置为 false。

    【讨论】:

      猜你喜欢
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      相关资源
      最近更新 更多