基于web-webhavrest抓取百度搜索结果

由于公司业务需要,需要做一个关键词信息抓取程序,就利用web-webharvest做了一个抓取程序。
java程序:

import java.io.IOException;

import org.webharvest.definition.ScraperConfiguration;
import org.webharvest.runtime.Scraper;


public class BaiduQ {
public static void main(String[] args) throws IOException { 

  ScraperConfiguration config = new ScraperConfiguration("E:/webharvest/baiduQ.xml"); 
  Scraper scraper = new Scraper(config, "E:/webharvest");
  String sd = "玩具";
scraper.addVariableToContext("baiduURL", new String("http://www.baidu.com/s?wd="+sd));//设置查询地址
scraper.addVariableToContext("fileName", new String(sd));//设置查询结果保存文件
  scraper.setDebug(true);  
   scraper.execute(); 
   
  } 


}

对应baiduQ.xml:

<config charset="gbk"> 

<!-- 页面爬取开始,按照关键词:来搜索 --> 
<var-def name="start" id="startpage"> 
<!--获得类中传入连接地址-->
<var-def name="baiduURL" overwrite="false"></var-def>
<!--获得类中传入存储文件名-->
<var-def name="fileName" overwrite="false"></var-def>
<html-to-xml> 
<http url="${baiduURL}"/> 
</html-to-xml> 
</var-def> 

<!-- 获取网站列表 --> 
<var-def name="urlList" id="urlList"> 
<xpath expression="//table[@class='result']"> 
<var name="start"/> 
</xpath> 
</var-def> 

<!-- 循环 urlList ,并把结果写入到XML文件中 --> 
  <file action="write" path="${fileName}.xml" charset="utf-8"> 
  <![CDATA[ <catalog> ]]> 
  <loop item="item" index="i"> 
  <list><var name="urlList"/></list> 
  <body> 
  <xquery> 
  <xq-param name="item" type="node()"><var name="item"/></xq-param> 
  <xq-expression><![CDATA[ 
  declare variable $item as node() external; 

  let $name := data($item//tr/td/a/font)  
  let $url := data($item//tr/td/a[1]/@href) 
  return 
  <website> 
  <name>{normalize-space($name)}</name> 
  <url>{normalize-space($url)}</url> 
  </website> 
  ]]></xq-expression> 
  </xquery> 
  </body> 
  </loop> 
  <![CDATA[ </catalog> ]]> 
  </file> 
</config>

该程序运行后是把结果存入xml中,基本解决了抓取的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值