使用webmagic爬蟲對百度百科進行簡單的爬取

我命傾塵發表於2019-02-20

分析要爬取的網頁原始碼:

  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可以在這裡直接複製:

  

相關文章