現在做爬蟲的大部分都在用Python,其實java也可以,這里介紹一款輕量級國產爬蟲框架 Webmagic
官方地址:http://webmagic.io/
個人對於爬蟲的理解分為2種,第一種是爬取頁面(靜態數據),第二種是爬取接口(動態加載的數據)
對於靜態的頁面數據,關鍵獲取到頁面document結構。
對於接口的數據,關鍵是找到接口鏈接和對應參數。
Webmagic對着兩種都有非常簡潔,易於理解的處理方案。
三個核心:PageProcessor,Pipeline,Spider
PageProcessor 實現爬取規則
Pipeline 實現數據持久化
Spider 啟動爬蟲,指定規則。
例如:
Spider.create(new MyProcessor())
.addPipeline(new MyPipeline())
.addUrl("http://www.xxxx.com").thread(3).run();
表示 啟動一個爬蟲,爬取規則為MyProcesser,爬取后的數據處理方式為MyPipeline,目標網站為http://www.xxxx.com,線程數量為3個,就是這么簡潔。
如要處理非http GET的請求方式,可以同Request對象,例如:
Request request = new Request("http://xxx/path"); request.setMethod(HttpConstant.Method.POST); request.setRequestBody(HttpRequestBody.json("{'id':1}","utf-8"));
Spider.create(new MyProcessor())
.addPipeline(new MyPipeline())
.addRequest(request).thread(3).run();
HttpRequestBody內置了幾種初始化方式,支持最常見的表單提交、json提交等方式。
另附一張官方架構圖