`
scnujie
  • 浏览: 128403 次
  • 性别: 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帮助手册

    4. **数据输出**:将处理后的数据保存到文件、数据库或其他系统中。 5. **可扩展性**:支持自定义插件和模块,满足特定需求。 **六、web-Harvest的使用步骤** 1. **安装与配置**:下载web-Harvest源代码和相关jar...

    web-harvest解析及源文件

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

    试用Web-Harvest 使用手册

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

    Web-Harvest手册

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

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

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

    nutch定向采集

    它不仅能够抓取网页,还能进行网页解析、链接数据库构建、网页评分、建立Lucene索引并提供搜索界面等一系列高级功能。Nutch因其强大的功能集和灵活性,在科研、数据挖掘和信息检索等领域得到了广泛应用。 #### 二、...

    Harvest Web Indexing-开源

    此外,Harvest-NG还支持多种数据存储后端,包括关系数据库和NoSQL数据库,这为用户提供了更多的选择和灵活性。 在实际应用中,Harvest-NG可以广泛应用于搜索引擎的构建、网站内容分析、市场研究等领域。例如,教育...

    开源爬虫介绍及下载链接

    11. **Web-Harvest**: 使用Java开发的数据抽取工具,通过XSLT、XQuery和正则表达式等技术从Web页面中提取所需数据。 12. **ItSucks**: 提供Swing GUI界面的Java爬虫项目,支持下载规则的自定义,通过下载模板和正则...

Global site tag (gtag.js) - Google Analytics