爬蟲(三)-客戶端爬取Android SDK發佈

經過前兩篇文章,咱們深刻論述了後臺爬取的痛點,同時提出了對客戶端方案可行性的思考。今天咱們就來介紹一下全球第一個客戶端爬取平臺,今天咱們來揭開它的神祕面紗!javascript

前兩篇文章:
一篇文章瞭解爬蟲技術現狀
爬蟲技術(二)-客戶端爬蟲java

DSpider平臺

DSpider是客戶端爬取平臺臺,官網地址:dspider.dtworkroom.com/,如官網說述, DSpider主要由雲管理平臺、sdk、爬蟲商店三部分組成,咱們簡單說明一下這三者的各自職責:jquery

雲管理平臺

dSpider的爬取腳本是動態下發的,雲管理平臺主要用於配置腳本參數、更新腳本、統計腳本爬取狀態、錯誤分析等。若是你是開發者,那麼雲管理平臺同時也是發佈、管理本身腳本的地方。android

SDK

sdk負責從雲端請求腳本而後執行,最後將爬取結果傳給第三方APP. (官方提供了ios和android的sdk,但目前只開放了android sdk)。ios

爬蟲商店

相似於應用商店,是一個爬蟲倉庫,開發者能夠在裏面挑選所需的腳本,也能夠將本身的腳本發佈到爬蟲商店git

集成到APP

咱們以android爲例,官方提供了完整的文檔及demo:
Android集成文檔:dspider.dtworkroom.com/document/an…
Android demo:github.com/wendux/DSpi…github

咱們先來看看官方demo的運行效果:api

demo

顯式爬取

爬取簡書主頁全部文章標題和連接:
session

爬取進度

爬取結果

隱式爬取(靜默)

隱式爬取沒有進度條,demo中彈出了一個loading窗做爲指示:app

隱式爬取

爬取腳本

爬取腳本很是簡單,咱們看看爬取簡書的腳本:

/** * Created by du on 16/11/21. */
dSpider("jianshu", function(session,env,$){
    session.showProgress();
    var $items=$("div.title");
    var count=$items.length;
    session.log("共"+count+"條");
    session.setProgressMax(count)
    session.setProgressMsg("正在初始化");
    var i=0;
   //模擬進度,每隔200ms向端上傳遞一次數據
    var timer=setInterval(function(){
      session.setProgress(i+1);
      var title=$items.eq(i).text();
      session.setProgressMsg(title);
      session.push({title:title, url:$items.eq(i).parent().attr("href")});
      if(++i>=count){
       clearInterval(timer);
       session.finish();
      }
    },200);
})複製代碼

可見爬取腳本很是簡單:用jquery解析網頁,而後再經過session對象和native 進行交互。詳細的API文檔請移步dSpider Javascript API文檔

注意事項

  1. 集成前須要去官網註冊,登陸後要先建立應用
  2. 建立應用成功後會獲得appid, sdk中須要。
  3. 應用建立以後須要給應用手動添加所需的爬蟲;系統默認會給每一個新建的應用添加sid爲1的測試爬蟲,該爬蟲信息:dspider.dtworkroom.com/spider/1;
  4. sid爲每個爬蟲的id, 在後臺建立爬蟲後會獲得sid. 你也能夠去腳本商店選擇。
相關文章
相關標籤/搜索