【锁定直播】字节、华为云、阿里云等技术专家讨论如何将大模型接入 AIOps 解决实际问题,戳>>> 了解详情
写点什么

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

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

关注

评论

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

冰河去腾讯了?

冰河

程序员 程序人生 冰河 冰河技术

Seata1.4.0源码编译

Fox

seata

游戏夜读 | 游戏中的确定性

game1night

分析 BAT 互联网巨头在大数据方向布局及大数据未来发展趋势

五分钟学大数据

大数据 2月春节不断更

5G专网是个大西瓜(二):碰撞之谜

脑极体

💯 关于 TCP 三次握手和四次挥手,满分回答在此

飞天小牛肉

面试 后端 计算机网络 TCP/IP 2月春节不断更

通过扫码提交信息

IT蜗壳-Tango

七日更 2月春节不断更

硬核!阿里自爆虐心万字面试手册,Github上获赞89.7K

996小迁

spring 架构 面试 程序人生 JVM

【Linux系统】常驻进程应用实践

程序员架构进阶

Linux 守护进程 七日更 28天写作 2月春节不断更

链上公开透明 链下迷雾重重 区块天眼能否拨开行业疑云

CECBC

区块链

100+标杆案例和1个减法:华为“懂行100”给2021带来了什么?

脑极体

思维导图整理Java并发基础

Java 架构 并发

Redis缓存热点引发的思考

Java架构师迁哥

28天瞎写的第二百三十七天:抢了HR 饭碗了吗?

树上

HR 28天写作

Mybatis【18】-- Mybatis自关联多对一查询方式

秦怀杂货店

mybatis

管理笔记[6]:任人唯贤、赏罚分明、任人所长

L3C老司机

SpringIOC的注解开发

小马哥

Java spring 七日更

每个人都应该理解这三个基本的 MLOps 概念

李忠良

28天写作

Nacos源码编译

Fox

nacos

深入理解nodejs的HTTP处理流程

程序那些事

node.js HTTP 异步编程 程序那些事

日记 2021年2月3日(周三)

Changing Lin

个人感悟 2月春节不断更

图解 | 原来这就是线程池

架构 线程池

Mac打开wps后风扇转的快机身发热

现实中游走

Mac cpu 100% wps 机身发热

信息茧房

lidaobing

28天写作 信息茧房

区块链时代,企业如何构筑竞争力的护城河?

CECBC

区块链

原子性操作类的使用

武哥聊编程

Java 多线程 原子性 28天写作

黑客练手入门| pwnable.kr—幼儿瓶—01:fd

BigYoung

黑客 安全 安全漏洞 28天写作 2月春节不断更

第四周-第一课

Geek_娴子

常用网址

现实中游走

机器学习笔记之:Addition and Scalar Multiplication

Nydia

为什么要持续学习

不在调上

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