- 浏览: 964403 次
文章分类
最新评论
-
18335864773:
很多公司项目 都在使用pageoffice 来操作word,e ...
用java生成word文档 -
Gozs_cs_dn:
请问下博主, 怎样将sitemesh3.xsd绑定 sitem ...
SiteMesh3配置 -
Rose_06:
springside4.0quick-start.bat报错原因 -
ilemma:
我也是刚参见工作啊,经理让自学这个,有些东西不太懂,能不能发个 ...
Apache Shiro在Web中的应用 -
shanbangyou:
你废了
程序员上班打酱油的方法
Web-Harvest是一个Java开源Web数据抽取工具。它能够收集指定的Web页面并从这些页面中提取有
用的数据。Web-Harvest主要是运用了像XSLT,XQuery,正则表达式等这些技术来实现对text/xml的操作。
个人感觉,这个工具的设计构想很好,利用写好的xml脚本把指定的html转化成xml,然后再利用xml
解析器从中抽取信息。这样在编写网页信息抽取工具时,我们就不用担心网页格式的变化,会影响到信息
抽取的结果,因为整个抽取信息的部分都是通过配置对应的脚本实现的,我们只要修改脚本就可以了,不
用更改程序代码。
下面是我按照这个开源工具自己带的例子改写的一个提取yahoo搜索信息的脚本,用Web-Harvest执行它
,可以提取以"KMS"为关键字在yahoo搜索引擎上搜索得到的结果。
脚本xml:
<?xml version="1.0" encoding="UTF-8"?>
<config charset="ISO-8859-1">
<include path="functions.xml"/>
<var-def name="search">KMS</var-def>
<var-def name="url">
<template>http://search.yahoo.com/search?p=${search}</template>
</var-def>
<!-- collects all tables for individual products -->
<var-def name="products">
<call name="download-multipage-list">
<call-param name="pageUrl"><var name="url"/></call-param>
<call-param name="nextXPath">//big[.='Next']/a/@href</call-param>
<call-param name="itemXPath">//ol/li</call-param>
<call-param name="maxloops">10</call-param>
</call>
</var-def>
<!-- iterates over all collected products and extract desired data -->
<file action="write" path="myyahoo.xml" charset="UTF-8">
<![CDATA[ yahoo ]]>
<loop item="item" index="i">
<list><var name="products"/></list>
<body>
<xquery>
<xq-param name="item"><var name="item"/></xq-param>
<xq-expression><![CDATA[
let $name := data($item//div[1]/a[1])
let $src := data($item//div[1]/a[1]/@href)
let $abs := data($item//div[2])
return
<product>
<name>{normalize-space($name)}</name>
<src>{normalize-space($src)}</src>
<abs>{normalize-space($abs)}</abs>
</product>
]]></xq-expression>
</xquery>
</body>
</loop>
<![CDATA[ yahoo ]]>
</file>
</config>
结果xml:
<yahoo><product>
<name>KMSResearch</name>
<src>http://rds.yahoo.com/_ylt=A0geuodL05lFpaEArQxXNyoA;_ylu=X3oDMTB2b2gzdDdtBGNvb
G8DZQRsA1dTMQRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=11fph2etm/EXP=1167795403/**http%3a//www.kmshaircare.com/</src>
<abs>Learn about each subbrand which has its own purpose and look to support your way of
life, mood, or whim.</abs>
</product>
.
.
.
<product>
<name>Summer - KMS promotional items</name>
<src>http://rds.yahoo.com/_ylt=A0geupZ705lFwVkAMQZXNyoA;_ylu=X3oDMTExYm1vY2p0BGNvb
G8DZQRsA1dTMQRwb3MDMTAwBHNlYwNzcgR2dGlkAw--/SIG=11q4tb45p/EXP=1167795451/**http%3a//kms-fra.com/en/products/sommer/</src>
<abs>KMS Design. Special designs. Onpacks and Inpacks ... KMS presents the smallest solar
charger available. ... The KMS SoftFrisbee - this UFO is foldable! ...</abs>
</product></yahoo>
如果你对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
- Web-Harvest-primer.rar (170.8 KB)
- 下载次数: 28
- webharvest2b1-exe.zip (7.3 MB)
- 下载次数: 99
发表评论
-
抢小米速入地址
2013-12-10 12:25 360http://t.hd.xiaomi.com/s/?_a=20 ... -
如何利用阿里妈妈(alimama)赚零花钱
2012-05-08 20:53 895阿里妈妈广告联盟适合中小型的网站或者博客投放,这样在写博客之余 ... -
卡片电脑“树莓派”上市
2012-03-04 00:23 12卡片式廉价电脑“树莓派”上市。 一个只有信用卡大小的微型电脑, ... -
SQL SERVER 2000 创建挂起的文件操作 原因及解决方法
2011-10-09 16:50 676在安装SQL SERVER 2000时出现如下的提示: ... -
在线印章,电子印章、公章、个性印章在线制作,QQ表情图片免费在线生成下载
2011-09-26 15:54 5输入文字即可在线印章,在线制作公章、电子印章及个性印章,还可生 ... -
WordPress怎么样导入大于2M的XML备份文件
2011-08-31 20:30 2019解决WordPress导入备份大 ... -
推荐一个可以绑定域名且可以打广告的博客
2011-08-31 11:21 1083今天发现一个可以绑定域名的博客-爱写字,wordpress的。 ... -
可绑Google Adsense帐户的免费博客i.ph,有100m
2011-08-30 00:09 565这个博客最大的好处就是可以绑定Google Adsense帐户 ... -
阿里妈妈如何升钻,冲钻攻略
2011-08-29 23:17 552阿里妈妈广告销售,升一钻、二钻、三钻时,都把自己当时总结的经验 ... -
调试一下各个广告投放平台的效果
2011-08-24 10:26 647这才放了不到一个多月,有时候我自己到博客里找资料打开单篇文章看 ... -
目前收益比较好的广告联盟和广告方式
2011-08-24 10:12 1059广告联盟提供的各种广 ... -
不靠百度google收录也可以做到日IP1000+
2011-08-23 22:55 76百度google没收录也可以 ... -
介绍两个可以放广告的博客,你自己可以研究一下,赚点零花钱还是有可能的
2011-08-22 19:05 985介绍两个可以放广告的博客。 一个是博客园,一个是中华网博客。 ... -
vf9新函数 ICASE( ) 函数
2011-08-12 10:01 554在oracle和sql server 中都有 ca ... -
推荐比较好的广告联盟之BloggerAds-部落格行销,来自台湾的CPM博客赚钱联盟
2011-08-04 10:31 1140推荐比较好的广告联盟之BloggerAds-部落格行销,来自台 ... -
开源CMS大PK:WordPress vs Drupal vs Joomla ,谁更强大更好用
2011-07-28 11:08 929WordPress vs Drupal vs Joomla 全 ... -
据说光驱即将退出历史舞台
2011-07-28 10:27 450国外媒体周一发表文章称,继MacBook Air之后,苹果近日 ... -
如何使用WordPress建立博客垃圾站在线赚钱 系列教程1:简介
2011-06-14 16:36 1723本教程翻译自Caroline Midd ... -
博客也疯狂 : 博客专家揭秘创收之道
2011-06-03 08:55 6131.2.1 职业博客导论 ... -
国外网站评出对程序员最具影响的书籍清单
2011-05-23 15:18 587国外知名网站 stackoverflow 上有一个问题调查: ...
相关推荐
[Web-Harvest数据采集之一]Web-Harvest基础-配置文件分析源码
[Web-Harvest数据采集之二]Web-Harvest基础-抓取java代码分析 配置文件 抓取类 开发要用到的jar包
web-Harvest中文帮助手册 源代码和相关的jar文件,XPath,XQuery等等
Web-Harvest手册
Web-Harvest是Web数据挖掘工具。提供一种方法收集目标网页和挖掘有用的数据。为此,使用XSLT,XQUERY,Regular Exp等技术。 其网址在http://web-harvest.sourceforge.net/。 挖掘数据也称为WebScraping或...
Web-Harvest学习笔记,主要是异常类的使用,标签的使用,scraper的源码等操作
里面有学习web_harvest的学习方法,还有一些源文件,其中-txt文件中文件可以直接运行XML文件进行操作,而另外的文件中用需要的JAR文件和导入到程序中使用的一些JAVA文件,希望对大家有用!
资源分类:Python库 所属语言:Python 资源全名:pytest-harvest-1.7.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
HARVEST 版本管理--用户手册
Laravel开发-harvest-api 用PHP编写的Harvest API,针对Laravel进行了优化。
Laravel开发-laravel-harvest 用于Harvest API的Laravel包装。
Laravel开发-laravel-harvest .zip
web harvest的jar包 提供一个xml编辑环境
The main goal behind Web-Harvest is to empower the usage of already existing extraction technologies. Its purpose is not to propose a new method, but to provide a way to easily use and combine the ...
Harvest使用手册Harvest使用手册Harvest使用手册
alfred-harvest, 在收获过程中,用于跟踪时间的Alfred工作流 ,,workflow,workflow,workflow,workflow 。让 帮你追踪时间。 这里工作流使你可以完全访问你的收获时间跟踪:查看今天的计时器启动/停止计时器查看...
1、导言 2、解析 3、总结