写点什么

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

  • 2015-12-25
  • 本文字数:1096 字

    阅读完需:约 4 分钟

整个 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 读者交流群(#2))。

2015-12-25 18:004680
用户头像

发布了 321 篇内容, 共 130.2 次阅读, 收获喜欢 19 次。

关注

评论

发布
暂无评论
发现更多内容

华为 HarmonyOS 正式发布!你还认为鸿蒙只是安卓套壳吗?

北游学Java

鸿蒙

defi流动性挖矿系统开发案例分析,defi流动性挖矿现成源码

系统开发咨询1357O98O718

拍乐云推出业内首个「线上美术教学音视频方案」,打造极致互动体验

拍乐云Pano

自媒体需要追求内容真实性:不能被流量裹胁

石头IT视角

【译】JavaScript 代码整洁之道-复杂判断

KooFE

JavaScript 大前端 6月日更 整洁代码 条件判断

无刷电机与有刷电机的区别

不脱发的程序猿

无刷电机 有刷电机 电机

【LeetCode】连续的子数组和Java题解

Albert

算法 LeetCode 6月日更

蓝海战略 - 如何设计与众不同的价值曲线

石云升

战略思考 职场经验 6月日更

【干货篇】bilibili:基于 Flink 的机器学习工作流平台在 b 站的应用

Apache Flink

flink

联邦计算在百度观星盘的实践

百度Geek说

大数据好书推荐

五分钟学大数据

最新!GigaOm 发布 API 网关评测报告:API7 和 Kong 企业版本性能对比

API7.ai 技术团队

负载均衡 架构 云原生 后端 网关

Flink 在有赞的实践和应用

Apache Flink

flink

defi流动性系统开发案例详情丨defi流动性源码功能

系统开发咨询1357O98O718

springboot-vue-activiti前后端分离快速开发平台脚手架,整合工作审批流,流程在线编辑器

金陵老街

Vue 后端 工作流 springboot

2021金三银四面试经历:腾讯三面落马+拒网易、CVTE后,字节四面成功拿下offer

Java 程序员 架构 面试

龙蜥专场精彩回放来了!10位技术大咖、242位开发者相聚

阿里云基础软件团队

iOS上的CSS样式协议 VKCssProtocol

iOSer

CSS ios 移动开发 ios开发 VKCssProtocol

从零开始学习3D可视化之控制对象(2)

ThingJS数字孪生引擎

可视化 数据化 3D 3D可视化

你想进大厂吗?阿里Java面试“内幕”分享

Java架构师迁哥

官宣!禅道与极狐(GitLab)达成深度合作,携手推进开源开放DevOps生态发展

禅道项目管理

项目管理 DevOps gitlab

佣金产品的敏捷交付

鲸品堂

佣金产品 敏捷交付

Consul场景用例:服务注册(Service discovery) & 服务网格(Service mesh)

awen

微服务 Consul Service Mesh 服务网格 服务注册与发现 服务网格

拍乐云受邀QCon大会 | 详解音视频技术架构实践,首发美术教学音视频方案

拍乐云Pano

python使用命令行传入参数

卤蛋翔

6月日更

OGA 联盟正式成立!禅道作为理事单位助力共建开源生态!

禅道项目管理

项目管理 DevOps gitlab

即构互动白板升级:全面支持教育机构上线H5交互课件

ZEGO即构

音视频 在线教育 互动白板

☕️【Java 技术之旅】知识盲点关于jar包的点点滴滴

码界西柚

Java jar Jar包扫描 6月日更

阿里P8熬了一个月肝出这份32W字Java面试手册,在Github标星68K+

Java 程序员 面试

毒瘤还是银弹--低代码与传统研发模式案例对比

赫杰辉

低代码 低代码开发平台

阿里直通车?阿里Java面试“内幕”:十万字内部面试题总结

Java架构追梦

Java 阿里巴巴 架构 面试

雅虎开源语义数据Web爬虫:Anthelion_语言 & 开发_孙镜涛_InfoQ精选文章