爬虫(三)-客户端爬取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. 你也能够去脚本商店选择。
相关文章
相关标签/搜索