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

 Web-Harvest中负责数据抓取的java代码,还是非常简单的,只有简单的几行代码,实际上整个抓取的复杂过程都被已经Web-Harvest封装起来,这极大地方便了开发人员运用Web-Harvest进行数据采集。

/*获取配置文件*/
ScraperConfiguration config = new ScraperConfiguration("./360buy/category/360buy_category.xml");
/*声明一个抓取机并设置抓取结果保存路径*/
Scraper scraper=new Scraper(config, "./360buy/category/");
scraper.setDebug(true);
/*开始抓取*/
scraper.execute();

抓取结果部分代码如下:

<?xml version="1.0" encoding="gbk" ?>
<buy360>
<c>
   <c1>图书、音像</c1>
   <c2>音像</c2>
   <c3>音乐</c3>
   <u>http://mvd.360buy.com/music.html</u>
</c>
<c>
   <c1>图书、音像</c1>
   <c2>音像</c2>
   <c3>影视</c3>
   <u>http://mvd.360buy.com/movie.html</u>
</c>
<c>
   <c1>图书、音像</c1>
   <c2>音像</c2>
   <c3>教育音像</c3>
   <u>http://mvd.360buy.com/education.html</u>
</c>
<c>
   <c1>图书、音像</c1>
   <c2>文艺</c2>
   <c3>小说</c3>
   <u>/products/1713-3258-000.html</u>
</c>
<c>
   <c1>图书、音像</c1>
   <c2>文艺</c2>
   <c3>文学</c3>
   <u>/products/1713-3259-000.html</u>
</c>
<c>
   <c1>图书、音像</c1>
   <c2>文艺</c2>
   <c3>青春文学</c3>
   <u>/products/1713-3260-000.html</u>
</c>


从结果中可以看出有些URL是不完整的,这很好办,我们在写入数据库的时候可以写个方法处理一下就行了。

 

[Web-Harvest数据采集之二]Web-Harvest基础-抓取java代码分析源码及开发要用到的jar包

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个简单的Java农夫果园代码示例,其中包含了农夫、果树和水果等类的定义,以及一些基本的操作方法。 ``` // 农夫类 public class Farmer { private int id; private String name; public Farmer(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } public void waterTree(Tree tree) { tree.setWatered(true); System.out.println("农夫" + name + "给果树" + tree.getId() + "浇水了。"); } public void harvestFruit(Tree tree) { if(tree.isWatered()) { Fruit fruit = tree.harvest(); System.out.println("农夫" + name + "采摘了果树" + tree.getId() + "上的" + fruit.getName() + "。"); } else { System.out.println("果树" + tree.getId() + "还没有浇水,无法收获果实。"); } } } // 果树类 public class Tree { private int id; private Fruit fruit; private boolean watered; public Tree(int id, Fruit fruit) { this.id = id; this.fruit = fruit; } public int getId() { return id; } public Fruit getFruit() { return fruit; } public boolean isWatered() { return watered; } public void setWatered(boolean watered) { this.watered = watered; } public Fruit harvest() { Fruit fruit = this.fruit; this.fruit = null; return fruit; } } // 水果类 public class Fruit { private String name; public Fruit(String name) { this.name = name; } public String getName() { return name; } } // 示例程序 public class Orchard { public static void main(String[] args) { Fruit apple = new Fruit("苹果"); Tree tree1 = new Tree(1, apple); Farmer farmer1 = new Farmer(1, "张三"); farmer1.waterTree(tree1); farmer1.harvestFruit(tree1); } } ``` 在该示例中,定义了农夫、果树和水果三个类,其中农夫可以给果树浇水和收获果实,果树可以存储水果和记录是否已经浇水,水果类只有一个名称属性。示例程序创建了一个苹果树和一个农夫,农夫先给果树浇水,然后收获果实。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值