【问题标题】:Re-crawl Nutch periodically using cron job使用 cron 作业定期重新抓取 Nutch
【发布时间】:2016-06-19 16:01:33
【问题描述】:

我已经使用 Nutch 1.12 成功爬取了一个网站,并使用以下命令在 Solr 6.1 中对其进行了索引:

[root@2a563cff0511 nutch-latest]# bin/crawl -i \
> -D solr.server.url=http://192.168.99.100:8983/solr/test/ urls/ crawl 5

当我再次运行上述命令时,它会显示以下内容:

[root@2a563cff0511 nutch-latest]# bin/crawl -i \
> -D solr.server.url=http://192.168.99.100:8983/solr/test/ urls/ crawl 5
Injecting seed URLs
/opt/nutch-latest/bin/nutch inject crawl/crawldb urls/
Injector: starting at 2016-06-19 15:29:08
Injector: crawlDb: crawl/crawldb
Injector: urlDir: urls
Injector: Converting injected urls to crawl db entries.
Injector: overwrite: false
Injector: update: false
Injector: Total urls rejected by filters: 0
Injector: Total urls injected after normalization and filtering: 1
Injector: Total urls injected but already in CrawlDb: 1
Injector: Total new urls injected: 0
Injector: finished at 2016-06-19 15:29:13, elapsed: 00:00:05
Sun Jun 19 15:29:13 UTC 2016 : Iteration 1 of 1
Generating a new segment
/opt/nutch-latest/bin/nutch generate -D mapreduce.job.reduces=2 -D mapred.child.java.opts=-Xmx1000m -D mapreduce.reduce.
speculative=false -D mapreduce.map.speculative=false -D mapreduce.map.output.compress=true crawl/crawldb crawl/segments
-topN 50000 -numFetchers 1 -noFilter
Generator: starting at 2016-06-19 15:29:15
Generator: Selecting best-scoring urls due for fetch.
Generator: filtering: false
Generator: normalizing: true
Generator: topN: 50000
Generator: 0 records selected for fetching, exiting ...
Generate returned 1 (no new segments created)
Escaping loop: no more URLs to fetch now

但是,我进行了一些更改,即正在添加新文件并更改了现有文件。

【问题讨论】:

    标签: solr nutch


    【解决方案1】:

    您使用了执行完整抓取周期的bin/crawl 命令。当您第一次执行命令时,它会上升到深度 5,即执行 5 个周期。

    现在,当您再次运行相同的命令并提供相同的段文件夹时,在您的情况下为 crawl,它将尝试从深度 6 获取页面,因为爬网数据库已经标记了从前 5 次爬网中检索到的页面作为获取。

    可能有某些因素导致无法获取更多页面。

    一个原因可能是没有更多可用的链接可供您尝试获取。如果您已将 URL 限制为在 NUTCH_HOME/conf/regex-urlfilter.txt 中获取,则可能是这样。

    您的配置中也可能存在其他限制,请查看我在 How to increase number of documents fetched by Apache Nutch crawler 上的回答


    我从您的问题标题中了解到:“定期使用 cronjob 重新抓取 nutch”。如果您想再次从头开始重新抓取页面,则应更改或删除保存所有 nutch 的 crawldb、linkdb 和段 的文件夹。在您的情况下 "crawl" 文件夹。这将不会从上次抓取过程中继续您的抓取,而是会再次从零开始。

    你也可以看看这个post

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多