写点什么

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

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

关注

评论

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

不想当Window的Dialog不是一个好Modal,弹窗翻身记...

hiisea

前端 前端开发 前端架构 antd 前端框架

LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二:编码实现

程序员欣宸

Java LeetCode 8月月更

Linux工具之Vim编辑器

TimeFriends

8月月更

2021-Java后端工程师必会知识点-(分布式RPC框架Dubbo)

自然

RPC 8月月更

Java J.U.C 学习笔记-使用篇(一)

U2647

行业 SaaS 微服务稳定性保障实战

阿里巴巴云原生

阿里云 微服务 云原生 可观测

程序员常说的“左手锟斤拷,右手烫烫烫”是怎么回事?

桑榆

bug 8月月更

面试突击71:GET 和 POST 有什么区别?

王磊

Java 常见面试题

SAP Analytics Cloud 和 SAP Cloud for Customer 两款 SaaS 软件的集成

汪子熙

SaaS 云平台 系统集成 8月月更

Sass/Scss、Less 是什么?

CRMEB

是什么,让中国成为一台超级计算机?

脑极体

数据中台建设(八):数据服务体系建设

Lansonli

数据中台 8月月更

鲲鹏devkit开发套件

乌龟哥哥

8月月更

手撸Router,还要啥Router框架?让react-router/vue-router躺一边凉快去

hiisea

vue.js 前端 开源项目 前端框架 React

【LeetCode】使数组中所有元素都等于零Java题解

Albert

LeetCode 8月月更

SRv6网络演进面临的挑战

穿过生命散发芬芳

8月月更 SRv6

linux重要的目录之etc

入门小站

万物智联时代,悄然走入生活

这不科技

鸿蒙 OpenHarmony

C++面向对象封装特性的实例分析与应用扩展(一)

CtrlX

c++ 面向对象 后端 代码 8月月更

磁盘管理-Linux系统磁盘管理

Albert Edison

Linux 磁盘 8月月更

浅聊缓存函数

掘金安东尼

前端 8月月更 高阶函数

开源一夏 | 教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”

知识浅谈

开源 8月月更

2022-Java后端工程师必会知识点-(Docker)

自然

Docker 镜像 8月月更

2022-Java后端工程师必会知识点-(Lunix)

自然

Lniux 8月月更

Serverless开源架构方案

阿泽🧸

Knative 8月月更

Nacos配置中心之事件订阅

急需上岸的小谢

8月月更

开源一夏 | VuePress的简单使用

坚果

开源 8月月更

Java网络编程IO模型 --- BIO、NIO、AIO详解

Bug终结者

Java io 8月月更

关于 01 背包问题

HelloWorld杰少

8月月更

git 安装与体验

Jason199

git 签约计划第三季 8月月更

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