BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

雅虎开源语义数据Web爬虫:Anthelion

| 作者 孙镜涛 关注 2 他的粉丝 发布于 2015年12月26日. 估计阅读时间: 4 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

整个Web世界正在发生剧烈的转变,包含语义注解的Web页面让数据的提取和重用变得越来越容易,而为了提供更好的用户体验搜索引擎和社交媒体网站对这种数据的使用也越来越多。要获取这些数据离不开网络爬虫的支持,为此,Yahoo创建了Anthelion项目,一个旨在爬取语义数据的Nutch插件,最近,该项目已在GitHub上开源

Anthelion是为了更好地爬取嵌在HTML页面中的结构化数据而设计的,它采用了一种全新的方法来爬取含有丰富数据的页面上的内容:将线上学习和Bandit探索方法有效地结合起来,根据页面上下文以及从之前页面提取到的元数据反馈预测Web页面的数据丰富程度。 这种方法明显优于主题爬取(Focused Crawling)目前所采用的其他技术,极大地提升了爬取效率。

整个数据爬取的流程如下:

正如上面的流程图所展示的,为了执行主题爬取,该插件实现了三个扩展:

  1. AnthelionScoringFilter(实现了ScoringFilter接口):在线分类器,它对每一个外链打分,同时将新发现的外链分为相关的和不相关的两类。
  2. WdcParser(实现了Parser接口):解析Web页面内容并提取语义数据。该扩展基于any23类库实现,能够从HTML中提取Microdata、Microformats和RDFa注解。
  3. TripleExtractor(实现了IndexingFilter接口):将新域存储到索引中供之后的查询使用。

对于想亲身感受Anthelion的用户而言,直接从GitHub上下载整个项目包或许是一个不错的选择,因为它包含了完整的Nutch 1.6代码和相关插件,不需要任何修改和设置就能运行。如果只想下载插件,那么需要从文件的根目录下下载nutch-anth.zip并进行相关的设置。

在构建好项目之后,导航到\target文件夹,执行CCFakeCrawler类的main函数就能启动爬虫,例如:

java -Xmx15G -cp ant.jar com.yahoo.research.robme.anthelion.simulation.CCFakeCrawler [indexfile] [networkfile] [labelfile] [propertiesfile] [resultlogfile]

其中,indexfile是ID和URL之间的映射文件,networkfile是索引中ID的图,labelfile是满足目标函数的ID列表,propertiesfile是配置文件,resultlogfile存储性能和爬取流程信息。

Anthelion支持init、start、stop和exit操作,在爬取的过程中,用户还可以通过status命令查看爬取进程的状态。另外,对于Anthelion爬取数据的精确度Yahoo也进行了评测,结果如下:


感谢魏星对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

构建失败 by lii stephen

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT