美文网首页Android UIAndroid开发Android进阶之路
爬虫(三)-客户端爬取Android SDK发布

爬虫(三)-客户端爬取Android SDK发布

作者: lazydu | 来源:发表于2017-03-23 19:20 被阅读762次

    通过前两篇文章,我们深入论述了后台爬取的痛点,同时提出了对客户端方案可行性的思考。今天我们就来介绍一下全球第一个客户端爬取平台,今天我们来揭开它的神秘面纱!

    前两篇文章:

    一篇文章了解爬虫技术现状
    爬虫技术(二)-客户端爬虫
    DSpider平台
    DSpider是客户端爬取平台台,官网地址:https://dspider.dtworkroom.com/,如官网说述, DSpider主要由云管理平台、sdk、爬虫商店三部分组成,我们简单说明一下这三者的各自职责:
    云管理平台
    dSpider的爬取脚本是动态下发的,云管理平台主要用于配置脚本参数、更新脚本、统计脚本爬取状态、错误分析等。如果你是开发者,那么云管理平台同时也是发布、管理自己脚本的地方。

    SDK

    sdk负责从云端请求脚本然后执行,最后将爬取结果传给第三方APP. (官方提供了ios和android的sdk,但目前只开放了android sdk)。

    爬虫商店

    类似于应用商店,是一个爬虫仓库,开发者可以在里面挑选所需的脚本,也可以将自己的脚本发布到爬虫商店

    集成到APP

    我们以android为例,官方提供了完整的文档及demo:
    Android集成文档:https://dspider.dtworkroom.com/document/android
    Android demo:https://github.com/wendux/DSpiderDemo-Android
    我们先来看看官方demo的运行效果:

    demo

    显式爬取

    爬取简书主页所有文章标题和链接:


    爬取进度 爬取结果

    隐式爬取(静默)

    隐式爬取没有进度条,demo中弹出了一个loading窗作为指示:

    隐式爬取

    爬取脚本

    爬取脚本非常简单,我们看看爬取简书的脚本:

    /**
     * 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的测试爬虫,该爬虫信息:https://dspider.dtworkroom.com/spider/1
    4. sid为每一个爬虫的id, 在后台创建爬虫后会得到sid. 你也可以去脚本商店选择。

    相关文章

      网友评论

      • e26278f01ff8::sweat:最近公司要招聘爬虫工程师,可是南京实在是太少了。。。
        4fd90d584b69:@威风凛凛的大云云 我可以自荐吗
      • Tim_Lee:效率低了点
        Tim_Lee:我说客户端的效率怎么解决?
        lazydu: @Tim_Lee 最近忙😄

      本文标题:爬虫(三)-客户端爬取Android SDK发布

      本文链接:https://www.haomeiwen.com/subject/acytottx.html