在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

雅虎开源语义数据 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:004844
用户头像

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

关注

评论

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

在线CSS压缩工具

入门小站

工具

Flutter 实现更有趣的页面滚动效果

岛上码农

flutter ios 跨平台 3月月更 安卓开发

Prometheus搭乘华为云GaussDB(for Influx):让监控数据更安全

华为云开发者联盟

安全 Prometheus 华为云 GaussDB(for Influx) 监控数据

高并发场景下优化加锁方式:线程等待与通知机制

华为云开发者联盟

线程 高并发 死锁 加锁 互斥锁

运维自动化发展的4个阶段

穿过生命散发芬芳

3月月更

一个编译问题带你了解 Flutter Web 的打包构建和分包实现

CRMEB

手绘流程图讲解spark是如何实现集群的高可用

华为云开发者联盟

spark 高可用 集群 Worker master

并发与多线程之线程安全篇

Linux服务器开发

线程 多线程 并发 后端开发 Linux后台开发

架构师作业1

小虾米

微服务架构趋势下如何处理存量系统

Meta-Soft

微服务 servicemesh 边车模式

黄金排障场景之Coredump

焦振清

稳定性 稳定性治理 coredump 故障复盘 90-2-5-10

Mysql的explain,你真的会用吗?

慕枫技术笔记

数据库 3月月更

特性更新!DistSQL 集群治理能力详解

SphereEx

Apache 数据库 ShardingSphere SphereEx

写作一

ASCE

不想业务被中断?快来解锁华为云RDS for MySQL新特性

华为云开发者联盟

MySQL 事务 华为云RDS for MySQL 应用无损透明 业务中断

该怎么认识数字藏品

CECBC

数字经济的重要基石——数据安全

CECBC

企业级低代码服务编排库 - Commander

Meta-Soft

服务编排 低代码平台 服务组合

C语言总结_格式化打印函数、字符串、运算符

DS小龙哥

3月月更

Mac 和 Windows 共享一套鼠标键盘

TroyLiu

效率 Mac windows sharemouse 共享键鼠

Altium Designer

謓泽

3月月更

模拟小程序电商的微服务拆分

AragornYang

架构训练营 架构实战营

浏览器辅助神器:油猴脚本使用教程

源字节1号

前端开发 后端开发 技术分享 网站开发

Kafka Kraft核心实现

Clarke

加密项目必修科目:代币经济学

CECBC

3分钟带你搞懂Vue双向绑定原理及问题剖析

Bug终结者

CSS JavaScript vue.js

模块一:作业

本人法海

「架构实战营」

在线JSON转PHP Array工具

入门小站

工具

投稿有奖丨阿里云服务器AMD实例开发实践征文活动

阿里云弹性计算

AMD 征文活动 玩转ECS

训练营作业-Module_1

Jadedev

架构实战营

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