【问题标题】:Apache Nutch fetch and updatedb stagesApache Nutch fetch 和 updatedb 阶段
【发布时间】:2017-07-06 08:43:50
【问题描述】:

我有一个关于 Nutch 获取链接以更新 crawldb 的方式的问题。

有问题的命令是bin/nutch updatedb crawl/crawldb $s1

我需要编写一个自定义解析器,在此之前我已经检查了 Nutch 的源代码,就我而言,我负责提供更新 crawldb 的链接,方法是从文档中提取它并将其放入在 ParseData 中作为 Outlink[]。至少这是我从this 那里了解到的。

如果我错了,请纠正我,因为我不希望我的爬虫在第一次迭代后停止,因为它没有更新 crawldb 的链接。

【问题讨论】:

    标签: java apache parsing html-parsing nutch


    【解决方案1】:

    Nutch 使用parse-htmlparse-tika 来解析你抓取的URL(通常是HTML),在这个阶段,外链被提取和存储,当你执行爬虫的新迭代时,Nutch 会选择一些可用的(提取的) 链接以继续抓取,如果您需要从网络中提取其他信息,您只需要编写自己的解析器,例如,假设您希望将所有 h1 标题放在一个单独的字段中。

    如果您查看抓取脚本 (https://github.com/apache/nutch/blob/master/src/bin/crawl#L246),您会发现 updatedb 命令将在每次迭代中执行一次,因此如果您使用的是 parse-htmlparse-tika,请查看 HTML 的外链接文档(以及其他)会自动为您提取。

    【讨论】:

    • 所以我对 Outlinks[] 的看法是正确的,是吗?我放在那里的链接将在下一次迭代中使用,对吧?
    • 不完全是在下一次迭代中,还涉及到更多的事情(评分)和生成器中的逻辑,但是如果你在Outlinks[] 中放置一些链接,那么它 可能可用于下一次迭代,具体取决于评分、-topN 参数等。请记住,URL 过滤器可能会根据您的配置排除某些 URL。
    • 谢谢,这正是我需要知道的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多