写点什么

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

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

关注

评论

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

【玩转 RT-Thread】 RT-Thread Studio —— 按键控制电机正反转、蜂鸣器

攻城狮杰森

OS 7月月更 RT-Thread

java零基础入门-Java正则表达式

喵手

Java 7月月更

【Python技能树共建】动态渲染页面爬取

梦想橡皮擦

Python 7月月更

交付效率提升52倍,运营效率提升10倍,看《金融云原生技术实践案例汇编》(附下载)

York

云原生 金融科技 金融行业

云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?

行云管家

云计算 等保 等保2.0 云计算安全扩展

如何在博客中添加Aplayer音乐播放器

echeverra

前端

盘点JS判断空对象的几大方法

猪痞恶霸

前端 js 7月月更

关于 Web Content-Security-Policy Directive 通过 meta 元素指定的一些测试用例

汪子熙

JavaScript 前端开发 CSP meta 7月月更

ORACLE进阶(五)SCHEMA解惑

No Silver Bullet

oracle schema 7月月更

决策树算法

秃头小苏

决策树 7月月更

风靡B站的《看漫画学Python》到底是什么来头?

博文视点Broadview

简单介绍一下闭包及它的一些应用场景

是乃德也是Ned

7月月更

electron添加SQLite数据库

空城机

sqlite Electron 7月月更

Vue 灰度发布新功能的那些事

南城FE

Vue 前端 灰度发布 7月月更

如何参与开源项目 - 细说 GitHub 上的 PR 全过程

胡说云原生

GitHub 开源 pull request DevStream

Qt|多个窗口共有一个提示框类

中国好公民st

qt 7月月更

Android自定义TextView实现高度和宽度,解决字体适配问题

芝麻粒儿

Android Studio TextView 7月月更

Python|正则表达式

AXYZdong

Python 7月月更

科普达人丨一文弄懂什么是云计算?

阿里云弹性计算

云计算 阿里云 虚拟化 神龙架构 IT资源利用

千人规模互联网公司研发效能成功之路

laofo

互联网 DevOps 研发效能 工程效率

wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6

wallys-wifi6

IPQ8072 IPQ9072a

系统入门-Linux系统基础命令

Albert Edison

7月月更

得物客服热线的演进之路

得物技术

大前端 客服

作战图鉴:12大场景详述容器安全建设要求

青藤云安全

网络安全 解决方案 容器安全

为租客提供帮助

源字节1号

微信小程序 软件开发 前端开发 后端开发 租房小程序

基于华为云IOT设计智能称重系统(STM32)

DS小龙哥

7月月更

LeetCode-144. 二叉树的前序遍历(java)

bug菌

Leet Code 7月月更

开发一个小程序商城需要多少钱?

CRMEB

Scala 基础 (六):面向对象(下篇)

百思不得小赵

scala 大数据 7月月更

基于鲲鹏原生安全,打造安全可信的计算平台

极客天地

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