`
scnujie
  • 浏览: 127768 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用Web-Harvest抓取数据并保存到数据库(一)

阅读更多
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>  
3
0
分享到:
评论
1 楼 fuhao_98 2009-10-13  
从其官网:http://web-harvest.sourceforge.net/上下载所需工具并把其工程部署到eclipse里面这自不必说,我下载的是1.0版本的。
晕,能详细吗?是1.0的哪个啊?bin?project?应该是后者吧?那怎么部署啊~!初学者啊。

相关推荐

    [Web-Harvest数据采集之二]Web-Harvest基础-抓取java代码分析

    Web-Harvest是一款开源的数据采集工具,主要用于自动化地从网页上提取信息。在这个主题中,我们将深入探讨Web-Harvest的基础知识,特别是如何利用它来抓取Java代码进行分析。在进行数据采集时,理解配置文件、抓取类...

    [Web-Harvest数据采集之一]Web-Harvest基础-配置文件分析源码

    [Web-Harvest数据采集之一]Web-Harvest基础-配置文件分析源码

    web-Harvest帮助手册

    web-Harvest的核心在于其配置脚本,这些脚本通常使用XML格式,定义了如何从目标网站抓取数据、如何处理数据以及如何输出结果。脚本中包含了HTTP请求、XPath或XQuery表达式、数据转换和过滤规则等元素。 **五、web-...

    web-harvest解析及源文件

    通过结合其他工具,如数据库和数据分析库,Web-Harvest可以成为数据驱动决策的重要一环。 总结一下,Web-Harvest是一个功能强大的网页数据提取工具,通过XML配置文件定义数据抽取规则。这个压缩包提供的资源可以...

    Web-Harvest学习笔记.doc

    Web-Harvest是一个用于Web数据挖掘的开源工具,它的核心功能是通过自定义的XML配置文件来抓取和处理目标网页中的数据。该工具支持多种技术,如XPath、XQuery和正则表达式,用于从HTML文档中提取所需信息。Web-...

    试用Web-Harvest 使用手册

    - `store`:存储器,将处理后的数据保存到文件或数据库。 **四、常用提取组件** 1. **`http-request`**:用于发送HTTP请求,获取网页HTML。 2. **`regex`**:正则表达式匹配,用于从HTML中提取特定模式的数据。 3. ...

    Web-Harvest手册

    Web-Harvest是一款强大的网页数据提取工具,它通过配置文件来定义复杂的网页抓取和处理逻辑。本手册将深入介绍Web-Harvest配置文件的结构和元素,帮助用户理解和运用这款工具。 首先,Web-Harvest配置文件的核心是...

    Web-Harvest学习笔记

    Web-Harvest学习笔记,主要是异常类的使用,标签的使用,scraper的源码等操作

    Laravel开发-laravel-harvest

    $projects = $harvest-&gt;projects()-&gt;all(); // 进行其他操作... } ``` 此外,`laravel-harvest` 可能还提供了额外的便利方法,如模型映射、数据转换等,以适应 Laravel 的 Eloquent ORM,使得与数据库的交互更加...

    Python库 | pytest-harvest-1.7.4.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:pytest-harvest-1.7.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Laravel开发-harvest-api

    1. **安装依赖**:首先,我们需要通过Composer安装一个Laravel客户端库,如`harvest-php-api`,它提供了一个方便的封装层,使与Harvest API交互变得更简单。在终端中运行: ``` composer require kylekatarnls/...

    Laravel开发-laravel-harvest .zip

    例如,`$harvest = App\Harvest::find(1)`可以获取ID为1的harvest数据,而`$harvest-&gt;save()`则可以保存模型的更改。 11. **Blade 模板**: Blade模板允许在视图中混合PHP代码,提供条件语句(@if, @else, @endif...

    web-harvest

    web harvest的jar包 提供一个xml编辑环境

    基于Nutch的Web网站定向采集系统

    Web-Harvest 使用XPath表达式来指定需要抓取的数据位置,生成XML文档作为输出结果。这使得Web-Harvest 成为了一款非常适合用于数据提取和转换的工具。 #### 关键技术问题探讨 1. **种子站点的选择**: - 种子站点...

    java开源软件项目网络爬虫-webharvest

    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 ...

    webharvset爬虫抓取

    WebHarvest是一个强大的、可扩展的网页数据提取工具,它允许用户通过XML配置文件定义规则来抓取并处理网络上的信息。本教程将带你深入了解WebHarvest的基本使用和配置,帮助你快速上手进行网页抓取。 首先,我们来...

    Python库 | harvest_python-0.3.3-py3-none-any.whl

    Python是一种广泛使用的高级编程语言,尤其在数据处理、科学计算和Web开发领域有着重要的地位。在Python的世界里,"库"是预编写好的代码模块,它们提供了特定功能,可以帮助开发者节省时间并提高效率。"harvest_...

    WebList-Harvest:这是EECS433课程项目

    从压缩包文件名称“WebList-Harvest-master”可以看出,这是一个开源项目,包含了项目的主分支源代码。用户可以下载并研究其源码,理解并学习如何实现这样的网络数据收获工具。 总结来说,WebList-Harvest项目是...

Global site tag (gtag.js) - Google Analytics