如何扩展Nutch进行文章爬取

2024-02-20

我正在寻找一个框架来抓取文章,然后我找到了Nutch 2.1。这是我的计划和每个计划的问题:

1

将文章列表页面添加到 url/seed.txt 这里有一个问题。我真正想要索引的是文章页面,而不是文章列表页面。但是,如果我不允许列表页面被索引,Nutch 将不会执行任何操作,因为列表页面是入口。那么,如何只索引文章页面而不索引列表页面呢?

2

编写一个插件来解析 html 中的“作者”、“日期”、“文章正文”、“标题”以及其他信息。 Nutch 2.1 中的“Parser”插件接口是: 解析 getParse(字符串 url, 网页页面) 'WebPage' 类有一些预定义的属性:

public class WebPage extends PersistentBase {
  // ...
  private Utf8 baseUrl;
  // ...
  private ByteBuffer content; // <== This becomes null in IndexFilter
  // ...
  private Utf8 title;
  private Utf8 text;
  // ...
  private Map<Utf8,Utf8> headers;
  private Map<Utf8,Utf8> outlinks;
  private Map<Utf8,Utf8> inlinks;
  private Map<Utf8,Utf8> markers;
  private Map<Utf8,ByteBuffer> metadata;
  // ...
}

So, as you can see, there are 5 maps I can put my specified attributes in. But, 'headers', 'outlinks', 'inlinks' seem not used for this. Maybe I could put those information into markers or metadata. Are they designed for this purpose?
BTW, the Parser in trunk looks like: 'public ParseResult getParse(Content content)', and seems more reasonable for me.

3

将文章索引到 Solr 后,另一个应用程序可以按“日期”查询它,然后将文章信息存储到 Mysql 中。 我这里的问题是:Nutch可以将文章直接存储到Mysql中吗?或者我可以编写一个插件来指定索引行为吗?

对于我的目的来说,Nutch 是一个不错的选择吗?如果没有,你们能为我推荐另一个高质量的框架/库吗? 感谢您的帮助。


如果您只需要从几个网站中提取文章,那么请查看http://www.crawl-anywhere.com/ http://www.crawl-anywhere.com/

它带有一个管理用户界面,您可以在其中指定要使用boilerpipe文章提取器(这很棒)。您还可以通过 URL 模式匹配要爬网的页面以及要爬网和索引的页面来指定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何扩展Nutch进行文章爬取 的相关文章

  • 如何修复获取 URL 时出现的 HTTP 错误。爬行时java中的Status = 500?

    我试图从评论页面抓取用户对 imdb 电影的评分 我的数据库中的电影数量约为 600 000 我使用jsoup来解析页面 如下所示 抱歉 我没有在这里写完整的代码 因为它太长了 try connecting to mysql db Resu
  • .net 4.0 中并行网络爬虫的最佳实践

    我需要通过代理下载很多页面 构建多线程网络爬虫的最佳实践是什么 Parallel For Foreach 是否足够好 还是对于繁重的 CPU 任务更好 您对以下代码有何看法 var multyProxy new MultyProxy mul
  • 使用用户名和密码登录后如何抓取网站

    我编写了一个网络爬虫 可以使用关键字抓取网站 但我想登录到我指定的网站并按关键字过滤信息 如何实现这一点 我发布了到目前为止我已经完成的代码 public class DB public Connection conn null publi
  • 从 JSON 嵌套哈希中提取特定字段

    我正在考虑编写一个 Web 应用程序来抓取 API 并以 JSON 形式返回此信息 但是 我只关注一个数字 然后是当前价格 在本示例中为 227 我如何在 Ruby 中访问它 我不知道从哪里开始 我从来没有处理过这样的文字 为了讨论的目的
  • Bingpreview 使电子邮件中的一次性链接失效

    Outlook com 似乎使用必应预览 https www bing com webmaster help which crawlers does bing use 8c184ec0爬虫来爬行电子邮件中的链接 但在打开电子邮件后 用户有机
  • Groovy 中的爬虫(JSoup VS Crawler4j)

    我希望在 Groovy 中开发一个网络爬虫 使用 Grails 框架和 MongoDB 数据库 它能够爬取网站 创建网站 URL 及其资源类型 内容 响应时间和涉及的重定向数量的列表 我正在争论 JSoup 与 Crawler4j 我已经阅
  • 使用 Python 抓取 Google 购物

    我需要抓取 Google Shopping 例如此链接 但在服务器的响应中 我刚刚收到没有项目的测试 即使在 Google Chrome 的源代码查看器中 我也看不到项目详细信息 什么请求可以获得所有物品详细信息数据 您可以使用以下方法实现
  • Robots.txt - 多个用户代理的抓取延迟的正确格式是什么?

    下面是一个示例机器人 txt文件允许多个用户代理 with 多次抓取延迟对于每个用户代理 抓取延迟值仅供说明之用 在真实的 robots txt 文件中会有所不同 我在整个网络上搜索了正确的答案 但找不到 有太多混合的建议 我不知道哪个是正
  • 如何修改Solr给出的搜索结果页面?

    我打算做一个利基搜索引擎 我使用 apache nutch 1 6 作为爬虫 使用 apache solr 3 6 2 作为搜索器 我必须说 网络上有关这些技术的更新信息非常少 我按照这个教程http wiki apache org nut
  • 爬虫脚本php

    我在这里抓取了一段脚本来抓取网站 将其放在我的服务器上并且它可以工作 唯一的问题是 如果我尝试爬行并将深度设置为 4 以上 则它不起作用 我想知道这是由于服务器缺乏资源还是代码本身造成的
  • BOT/蜘蛛陷阱创意

    我有一个客户 他的域名似乎受到 DDoS 攻击的严重打击 在日志中 看起来很正常的具有随机 IP 的用户代理 但它们翻阅页面的速度太快 不像人类 他们似乎也没有要求任何图像 我似乎找不到任何模式 我怀疑这是一群 Windows 僵尸 客户过
  • 扫描网站内容(快速)

    我的数据库中有数千个网站 我想在所有网站中搜索特定字符串 最快的方法是什么 我认为我应该首先获取每个网站的内容 这就是我这样做的方式 import urllib2 re string search string source urllib2
  • 有已知网络爬虫的列表吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试获取网络服务器上某些文件的准确下载数量 我查看了用户代理 其中一些显然是机器人或网络爬虫 但
  • 用scrapy一一爬取网站列表

    我正在尝试抓取网站列表scrapy 我尝试将网站网址列表作为start urls 但后来我发现我买不起那么多内存 有什么办法可以设置scrapy一次抓取一两个网站 您可以尝试使用concurrent requests 1以免数据超载 htt
  • php将所有链接转换为绝对url

    我正在用 php 编写一个网站爬虫 并且我已经有了可以从网站提取所有链接的代码 问题 网站使用绝对 URL 和相对 URL 的组合 示例 http 替换为 hxxp 因为我无法发布超链接 hxxp site com site com sit
  • Scrapy蜘蛛抓取页面和抓取项目之间的区别

    我正在编写一个 Scrapy CrawlSpider 它读取第一页上的 AD 列表 获取一些信息 例如列表和 AD url 的缩略图 然后向每个 AD url 发出请求以获取其详细信息 它在测试环境中工作和分页显然很好 但今天试图进行完整的
  • 在文本文件上书写时,重音符号和特殊字符无法正确显示

    这就是我正在做的事情 我在网站上进行网络爬虫以供个人使用 以复制文本并将书籍的章节设置为文本格式 然后使用另一个程序将其自动转换为 pdf 以将其放入我的云中 一切都很好 直到发生这种情况 特殊字符无法正确复制 例如重音在文本文件上显示为
  • 硒隐式等待不起作用

    这是我第一次使用 selenium 和无头浏览器 因为我想使用 ajax 技术抓取一些网页 效果很好 但在某些情况下加载整个页面需要太多时间 特别是当某些资源不可用时 所以我必须为selenium设置一个超时 首先我尝试过set page
  • 如何基于Scrapy构建一个永远运行的网络爬虫?

    我想基于Scrapy构建一个网络爬虫 从多个新闻门户网站抓取新闻图片 我希望这个爬虫是 永远奔跑 意味着它将定期重新访问一些门户页面以获取更新 安排优先事项 为不同类型的 URL 赋予不同的优先级 多线程获取 我已经阅读了Scrapy文档
  • 检测诚实的网络爬虫

    我想 在服务器端 检测哪些请求来自机器人 我现在并不关心恶意机器人 只关心那些表现良好的机器人 我见过一些方法 主要涉及将用户代理字符串与 bot 等关键字进行匹配 但这似乎很尴尬 不完整且无法维护 那么有人有更可靠的方法吗 如果没有 您是

随机推荐

  • 在 Windows XP 登录屏幕 (.NET / Pinvoke) 上运行进程(使用 GUI)

    我需要写一个小service运行一个应用程序 使用 GUI 例如calc exe 在登录屏幕上 我已经找到这个问题 和答案 在 Windows 7 欢迎屏幕上运行进程 https stackoverflow com questions 30
  • 如何组合数据框中的连续数据并累加值

    我有一个数据框 Type Volume Date Q 10 2016 6 1 Q 20 2016 6 1 T 10 2016 6 2 Q 10 2016 6 3 T 20 2016 6 4 T 20 2016 6 5 Q 10 2016 6
  • 如何使用 _this_ Jeditable 获取被操纵的 dom 元素的值?

    这是一个延续Jeditable 如何根据dom元素属性设置参数 https stackoverflow com questions 1255596 请在这里回复 这是我的 真实 帐户 我正在尝试将不同的参数值分配给启用了 jQuery 插件
  • 使用 matlab 创建跨图像边界的强度带

    I have this image 8 bit pseudo colored gray scale 我想在其边界周围创建一个特定度量的强度带 我尝试了腐蚀和其他数学运算 包括过滤以实现所需的频带 但一旦我使用腐蚀来切割部分边界 实际图像强度
  • 如何在 Postgresql 中提取子字符串模式

    我有一列包含很多不一致的字符串 其中一些包含具有一致模式的子字符串 2015mmdd AB CD EFG text text HIJ 我想提取它 我觉得这是正则表达式和子字符串命令的交叉情况 到目前为止我最好的方法是相当丑陋的 substr
  • NSURLSession,上传任务 - 获取传输的实际字节数

    我收到错误报告 称我的 iOS 应用程序在连接速度较慢时无法上传图像 虽然我的超时可能不够长 但还有另一个问题 我发现上传进度很快就达到 100 尽管我可以在 Charles 中看到字节仍在传输 我使用 NSURLSession 的以下方法
  • “nice”是否影响Java线程的优先级[重复]

    这个问题在这里已经有答案了 在 Unix 系统上 您可以以较低的 CPU 优先级 运行进程 迂腐地说 它不会改变所谓的 优先级 priority 而是影响可用 CPU 时间的使用份额 这是一般意义上的 优先级 使用nice命令 nice p
  • 如何在pytorch中打印Adadelta中的“实际”学习率

    In short 在 pytorch 中使用 adadelta 优化器时 我无法绘制 lr epoch 曲线 因为optimizer param groups 0 lr 始终返回相同的值 详细 Adadelta 可以仅使用一阶信息随时间动态
  • jquery mobile - 附加 html 内容并应用 JQuery mobile 的样式

    我有一个移动网站 它是通过附加 XML 提要中的数据创建的 最初加载提要及其所有数据 然后当用户浏览站点时从数组中获取正确的提要内容 以前的内容从 div 中清除 并应用新内容 我试图在附加新内容时向 jquery mobile 调用某种
  • 如何从 bash 读取参数[重复]

    这个问题在这里已经有答案了 我很好奇如何通过终端将参数传递到 bash 脚本并读取它们并根据参数处理脚本函数 所以如果我做了类似的事情 scriptname sh install or scriptname sh assets instal
  • Perl 模块 HTML::Template 可以使用除 之外的其他语法吗?

    我正在尝试利用Perl module HTML Template根据文档 它说你可以使用HTML注释而不是标记周围的大于 小于 但它对我不起作用 来自 HTML Template 的 perldoc 如果您热衷于有效的 HTML 并且希望您
  • OCI 运行时执行失败:container_linux.go:344:启动容器进程导致“没有这样的文件或目录”:未知

    我正在运行示例教程Hyperledger Fabric 文档 https hyperledger fabric readthedocs io en release 1 4 html 尝试使用以下命令运行 构建您的第一个网络 示例 byfn
  • Vue 3 - 访问路由器视图实例以调用子方法

    我正在尝试将 Vue 2 x 应用程序迁移到 Vue 3 x 不幸的是 在过去的两天里 我正在努力寻找解决这个简单问题的方法 我的应用程序适用于移动设备 在屏幕顶部有一个顶部栏 左侧和右侧有 2 个上下文按钮 这些按钮触发与我的视图中加载的
  • 带有粘性标题的 flutter DraggableScrollableSheet

    我正在我的 flutter 应用程序中实现 DraggableScrollableSheet 并希望有一个粘性标题 即只有列表视图滚动 并且工作表的顶部始终保持在原位 我的小部件看起来像这样 SizedBox expand child Dr
  • Scintilla 中的交替行着色

    我在用着wxStyledTextCtrl http wiki wxwindows org WxStyledTextCtrl来自 wxPython 一个围绕闪烁体 http www scintilla org 成分 有什么方法可以在其上获得替
  • Lua 中的 OOP - 创建类?

    我知道这个网站上有一些关于在 Lua 中实现 OOP 的问题 但是 这个问题有点不同 至少与我发现的相比 我正在尝试创建一个名为 human 并使其使用 人类 的 新 构造函数创建的对象继承人类内部的所有内容 除了它的构造函数 但是 我也不
  • 如何使用 TypeScript 定义 DynamoDB get 的返回类型?

    I have let resItem Schema resItem await dynamoClient get TableName Key uuid request body uuid promise 但我得到 Type PromiseR
  • WPF 弹出窗口 IsOpen 问题

    使用发现的概念在 StackOverflow 上 https stackoverflow com a 8946055 24399 请注意 ToggleButton IsHitTestVisible一定会Popup IsOpen with S
  • Objective-C ARC:强与保留,弱与分配

    ARC 引入了两个新的内存管理属性 strong and weak 除了copy 这显然是完全不同的东西 之间有什么区别吗strong vs retain and weak vs assign 根据我的理解 这里唯一的区别是weak将分配n
  • 如何扩展Nutch进行文章爬取

    我正在寻找一个框架来抓取文章 然后我找到了Nutch 2 1 这是我的计划和每个计划的问题 1 将文章列表页面添加到 url seed txt 这里有一个问题 我真正想要索引的是文章页面 而不是文章列表页面 但是 如果我不允许列表页面被索引