1. 从其官网:http://web-harvest.sourceforge.net/上下载所需工具并把其工程部署到eclipse里面这自不必说,我下载的是1.0版本的。
2. 看看并运行一下其自带的例子,这个步骤还是比较重要的,不过由于任务较紧,所以我只看了其中几个而已。
3. 开始我的工作:
a. 这里我要分析并抓取的页面:http://www.ctsgz.cn/tpl/index/search_more_label.do?xxk_name=%E6%B5%B7%E5%8D%97,我要的是里面前两个表里面的数据,
要先仔细分析一下页面的结构,看看怎样抓取比较好。
b. 从例子可以看出要选取其里面的数据应该是要在配置文件里面进行配置的而且要用到xpath的知识,不熟,所以还要进行xpath相关知识的学习(我也是临时
抱佛脚,看了一下),然后对着例子来看,经过多翻测试终于得出下面的配置,可以选出第一个表格里面的所有tr,并且返回的是一个list:
<var-def name="trlist">
<xpath expression="//table[@background='../images/dotline.gif'][1]/tbody/*[1]/following-sibling::*"> //xpath的语法要稍微看一下才行
<html-to-xml>
<http url="${targetUrl}"/>
</html-to-xml>
</xpath>
</var-def>
c. 然后再根据这个list在下面进行循环读取并写入文件:
<file action="write" path="test_ctsgz_${surf_name}.xml">
<template>
<![CDATA[ <root> ]]>
</template>
<loop item="item" index="i">
<list>
<var name="trlist"/>
</list>
<body>
<xquery>
<xq-param name="item">
<var name="item"/>
</xq-param>
<xq-expression><![CDATA[
declare variable $item as node() external;
let $order := data($item//td[1])
let $pathName := data($item//td[2])
let $startDate := data($item//td[3])
let $days := data($item//td[4])
let $travelTools := data($item//td[5])
let $price := data($item//td[6])
return
<city>
<order>{data($order)}</order>
<pathName>{data($pathName)}</pathName>
<startDate>{data($startDate)}</startDate>
<days>{data($days)}</days>
<travelTools>{data($travelTools)}</travelTools>
<price>{data($price)}</price>
</city>
]]></xq-expression>
</xquery>
</body>
</loop>
<![CDATA[ </root> ]]>
</file>
分享到:
相关推荐
[Web-Harvest数据采集之二]Web-Harvest基础-抓取java代码分析 配置文件 抓取类 开发要用到的jar包
[Web-Harvest数据采集之一]Web-Harvest基础-配置文件分析源码
Web-Harvest是Web数据挖掘工具。提供一种方法收集目标网页和挖掘有用的数据。为此,使用XSLT,XQUERY,Regular Exp等技术。 其网址在http://web-harvest.sourceforge.net/。 挖掘数据也称为WebScraping或...
Web-Harvest手册
web-Harvest中文帮助手册 源代码和相关的jar文件,XPath,XQuery等等
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
NULL 博文链接:https://guoyiqi.iteye.com/blog/973965
Laravel开发-harvest-api 用PHP编写的Harvest API,针对Laravel进行了优化。
web harvest的jar包 提供一个xml编辑环境
Laravel开发-laravel-harvest 用于Harvest API的Laravel包装。
Laravel开发-laravel-harvest .zip
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 ...
alfred-harvest, 在收获过程中,用于跟踪时间的Alfred工作流 ,,workflow,workflow,workflow,workflow 。让 帮你追踪时间。 这里工作流使你可以完全访问你的收获时间跟踪:查看今天的计时器启动/停止计时器查看...
npm install harvest-v2 验证 标头验证: let Harvest = require ( 'harvest-v2' ) ; let harvest = new Harvest ( { account_ID : config . harvest . account_id , access_token : config . harvest . token , ...
将扩展安装到你的 python 环境中: 注意:此插件基于当前版本的 CKAN 扩展 ckanext-harvest v2.0。 要安装它,请运行: (pyenv) $ pip install -e git+...
1、导言 2、解析 3、总结