web-crawler - Apache Nutch Crawler - 仅在现有表中抓取新注入的 URL
问题描述
我必须通过 Nutch 抓取一些 URL。为此,我每次都必须提供种子 URL。因此,它们每次都被注入同一个表中。现在,随着时间的流逝,数据库将增加,并且在生成阶段,它会查找所有需要时间的 URL。是否有某种方法可以指示 Nutch 仅抓取新注入的 URL 而不要查看表格(对于旧 URL)。或者有没有更好的方法来解决这个问题。
解决方案
(假设“table”代表 Nutch 2.x 使用的“WebTable”,将爬取的网页持久保存在支持的存储后端之一、HBase 等中):生成器通过批处理 ID 标记获取列表,请参阅
bin/crawl
有关如何使用批处理 ID 的详细信息的脚本。这是一个任意但唯一的字符串,不会太长,因为某些存储后端有长度限制(请参阅 gora-*-mapping.xml)。要跳过生成步骤,您可以使用任何其他工具使用自定义批处理 ID 标记新注入的 URL,然后使用此 ID调用fetch
、parse
、 。updatedb
index
(如果是关于 Nutch 1.x)有一个工具
freegen
可以获取 URL 列表(文本文件)并从中创建一个段。然后调用fetch
,parse
,updatedb
,index
将创建的段的路径作为参数传递。
推荐阅读
- c# - 如何从单页应用程序实现 OAuth 2.0 授权码授予?
- sql - 如何用 N/A 替换 0
- julia - 使用 joinpath() 将特定字符串插入更长的字符串 - 类似 R paste()
- android - 为什么 gradle 3.2.1 在 aar 文件中生成不必要/重复的空文件夹?
- python - 使用 .to_json 将数据帧转换为 JSON 会弄乱日期时间数据
- c - 如何找到具有特定值的行或列的总和?
- python - 为什么这个正则表达式在我的 Python 中不起作用?
- java - 如何更改我的 log4j2.xml RollingFile 设置
- node.js - 如何从角度向 node.js 发出 http.get() 请求?
- python - Flask - 不在浏览器上加载新页面