Web-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有

用的数据。Web-Harvest主要是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。

个人感觉,这个工具的设计构想很好,利用写好的xml脚本把指定的html转化成xml,然后再利用xml

解析器从中抽取信息。这样在编写网页信息抽取工具时,我们就不用担心网页格式的变化,会影响到信息

抽取的结果,因为整个抽取信息的部分都是通过配置对应的脚本实现的,我们只要修改脚本就可以了,不

用更改程序代码。

下面是我按照这个开源工具自己带的例子改写的一个提取yahoo搜索信息的脚本,用Web-Harvest执行它

,可以提取以"KMS"为关键字在yahoo搜索引擎上搜索得到的结果。

脚本xml:

KMS

http://search.yahoo.com/search?p=${search}

//big[.='Next']/a/@href

//ol/li

10

let $name := data($item//div[1]/a[1])

let $src := data($item//div[1]/a[1]/@href)

let $abs := data($item//div[2])

return

{normalize-space($name)}

{normalize-space($src)}

{normalize-space($abs)}

]]>

结果xml:

KMSResearch

http://rds.yahoo.com/_ylt=A0geuodL05lFpaEArQxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvb

G8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11fph2etm/EXP=1167795403/**http%3a//www.kmshaircare.com/

Learn about each subbrand which has its own purpose and look to support your way of

life, mood, or whim.

.

.

.

Summer - KMS promotional items

http://rds.yahoo.com/_ylt=A0geupZ705lFwVkAMQZXNyoA;_ylu=X3oDMTExYm1vY2p0BGNvb

G8DZQRsA1dTMQRwb3MDMTAwBHNlYwNzcgR2dGlkAw--/SIG=11q4tb45p/EXP=1167795451/**http%3a//kms-fra.com/en/products/sommer/

KMS Design. Special designs. Onpacks and Inpacks ... KMS presents the smallest solar

charger available. ... The KMS SoftFrisbee - this UFO is foldable! ...

如果你对xml,xpath,xquery这些技术都有了解,在看过Web-Harvest的帮助(http://web-harvest.sourceforge.net/manual.php)后,相信上面的脚本xml应该不难理解。

在整个试用过程中,我也发现了Web-Harvest的一些问题,比如他使用tagsoup对html网页进行清洗

,会造成一些格式不太规范的网页数据丢失(比如google的搜索页面),希望Web-Harvest的开发者能够

注意到这个问题,毕竟现在能够严格遵守HTML4.0规范的网页并不多,更多的是xml出现之前就已经存在

的网页。现在的web信息抽取使用xml技术实现无疑是最理想的,而Web-Harvest已经为我们搭建了一个

可供选择的抽取模型,如何解决对大量不规范网页的无损xml转换,将是这个工具能否运用到实际中的关

键环节。

还有,由于本人水平有限,在利用Web-Harvest抽取中文的网页,还没发现完全没有乱码的网页。

这篇文章的目的是希望能够抛砖引玉,能有更多的人关注Web-Harvest这个工具。因为Web-Harvest

还有很多高级的应用我还没有研究;还有很多需要改进的地方。但它至少给我一个启示,完全结构化的,

动态化的网页信息抽取是可以实现的,而且并不难。

参考文献:

Web-Harvest:http://web-harvest.sourceforge.net/

XPath教程:http://www.zvon.org/xxl/XPathTutorial/Output_chi/introduction.html

XQuery教程:http://www.w3pop.com/tech/school/xquery/default.asp

java实时数据抽取_试用Web-HarvestJava开源Web数据抽取...相关推荐

  1. 数据科学家数据分析师_站出来! 分析人员,数据科学家和其他所有人的领导和沟通技巧...

    数据科学家数据分析师 这一切如何发生? (How did this All Happen?) As I reflect on my life over the past few years, even ...

  2. pythonweb数据可视化_独家 | 基于Python实现交互式数据可视化的工具(用于Web)

    翻译:陈雨琳 校对:吴金笛 本文2200字,建议阅读8分钟. 本文将介绍实现数据可视化的软件包. 这学期(2018学年春季学期)我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一 ...

  3. hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖

    作者:孙大鹏,花名诚历,阿里巴巴计算平台事业部 EMR 技术专家,Apache Sentry PMC,Apache Commons Committer,目前从事开源大数据存储和优化方面的工作. 为什么 ...

  4. 数据科学家数据分析师_使您的分析师和数据科学家在数据处理方面保持一致

    数据科学家数据分析师 According to a recent survey conducted by Dimensional Research, only 50 percent of data a ...

  5. spss23出现数据消失_改善23亿人口健康数据的可视化

    spss23出现数据消失 District Health Information Software, or DHIS2, is one of the most important sources of ...

  6. hdfs 数据迁移_基于 JindoFS+OSS 构建高效数据湖

    为什么要构建数据湖 大数据时代早期,Apache HDFS 是构建具有海量存储能力数据仓库的首选方案.随着云计算.大数据.AI 等技术的发展,所有云厂商都在不断完善自家的对象存储,来更好地适配 Apa ...

  7. 千万数据去重_基于 Flink 的百亿数据去重实践

    在工作中经常会遇到去重的场景,例如基于 App 的用户行为日志分析系统,用户的行为日志从手机客户端上报到 Nginx 服务端,通过 Logstash.Flume 或其他工具将日志从 Nginx 写入到 ...

  8. 数据备份_「Cassandra实战」Cassandra数据备份

    尽管Cassandra号称可以做到宕机时间为零,但为了谨慎起见,还是需要对数据进行备份. Cassandra提供了几种备份的方法 将数据导出成为json格式 利用copy将数据导出为csv格式 直接复 ...

  9. 内存 增量数据持久_内存中数据模型和大数据持久性

    内存 增量数据持久 ORM框架在需要与关系数据库进行交互时可以帮助开发人员. 对于关系数据库,有许多出色的ORM框架,例如Hibernate和Apache OpenJPA,其中一些确实很棒. 如今,大 ...

最新文章

  1. 网站实现个人支付宝即时到帐POST页面
  2. 让自己的程序支持livewriter
  3. 织梦首页常用调用标签
  4. 【从0到1学Web前端】javascript中的ajax对象(一)
  5. php 冒泡置顶,浅谈php冒泡的排序
  6. mvn项目Quartz简单上手
  7. python中configparser详解_Python中的ConfigParser模块使用详解
  8. LeetCode 2069. 模拟行走机器人 II(模拟)
  9. python ThreadPoolExecutor线程池(实例)
  10. ubuntu安装禅道
  11. 考上985能改变命运吗_2021艺考生:文化课成绩一般,有机会考上985、211吗?
  12. java添加关闭窗口事件_Java开发网 - 如何给JInternalFrame类的窗口添加关闭事件?...
  13. js 图表处理之Echar
  14. Tool for FMEA
  15. iOS开发从appStore下载历史版本
  16. 企业安全实战】开源HIDS OSSEC部署与扩展使用
  17. 卷积神经网络膨胀卷积
  18. Vue 使用 Viewers 实现图片的 放大缩小、 旋转 、 拖拉等操作、支持多图片
  19. Linux服务器搭建----Web服务器(apache)
  20. 聊城市普通话水平测试软件音频,聊城市普通话水平测试培训-聊城市教师教育网.ppt...

热门文章

  1. js根据标签id获取其所有img
  2. APP安全测试-数据安全性/通讯安全性/人机接口安全性
  3. 6G愿景与需求:数字孪生、智能泛在
  4. 联想Tab P11 Pro 、Tab M10 HD 对标iPad Pro
  5. 网络安全学习(二十三)防火墙
  6. python做事件研究法_事件研究法
  7. 【即时通信】openfire安装和配置讲解
  8. win10+Ubuntu双系统
  9. 2017 华东师范大学网赛 F.丽娃河的狼人传说 Problem #3263( 贪心)
  10. 计算机网络诈骗犯罪的发案规律,当前网络诈骗犯罪侦查工作中存在的问题和对策演示教学(6页)-原创力文档...