使用webmagic爬虫对百度百科进行简单的爬取

一、分析要爬取的网页源码:

  1、打开要分析的网页,查看源代码,找到要爬取的内容:

  (选择网页里的一部分右击审查元素也行)

  

  2、导入jar包,这个就直接去网上下吧;

  3、写爬虫:

 1 package com.gb.pachong;
 2 import java.sql.SQLException;
 3 import com.gb.util.AddNum;
 4 import us.codecraft.webmagic.Page;
 5 import us.codecraft.webmagic.Site;
 6 import us.codecraft.webmagic.Spider;
 7 import us.codecraft.webmagic.processor.PageProcessor;
 8 public class BaikePaChong implements PageProcessor 
 9 {
10     private static String key;
11     public static String res=null;
12     // 抓取网站的相关配置,包括编码、重试次数、抓取间隔 
13     private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);
14     public void run(String key) 
15     {
16         this.key = key;
17         //addUrl就是种子url,Page对象就是当前获取的页面,getUrl()可以获得当前url,addTargetRequests()就是把链接放入等待爬取,getHtml()获得页面的html元素
18         //启动爬虫
19         Spider.create(new BaikePaChong()).addUrl("https://baike.baidu.com/item/" + key).thread(5).run();
20     }
21     @Override
22     public Site getSite() 
23     {
24         return site;
25     }
26     @Override
27     public void process(Page page) 
28     {
29         //获取页面内容
30         res = page.getHtml().xpath("//meta[@name='description']/@content").toString();
31         //把包含数据添加到数据库的方法的类实例化成对象
32         AddNum addNum=new AddNum();
33         try 
34         {
35             //数据添加进数据库
36             addNum.store(key, res);
37         } 
38         catch (SQLException e) 
39         {
40             e.printStackTrace();
41         }
42     }
43     public void search(String string) 
44     {
45         BaikePaChong baikePaChong = new BaikePaChong();
46         baikePaChong.run(string);
47     }
48     public String getRes()
49     {
50         return res;
51     }
52 }

  4、上面只是简单的爬取,可以仿照这样的方法进行一些别样的扩展使用。

  5、Xpath可以在这里直接复制:

  

posted @ 2019-02-20 22:11  我命倾尘  阅读(412)  评论(0编辑  收藏  举报