“客户端爬取”发布之后,有鲜花也有质疑,也有很多爱智求真、善于思考的同学在点赞之余,提出了一些有价值或者觉得有必要一答的问题,包括技术层面和道德层面,本文就主要问题作出解答。
在阅读本文之前,应该先看看这两篇:
问题一:需要安装app吗?这成本也太高了吧?
“客户端爬虫的前提是用户要安装你的 App,这个成本太高了呀!” --掘金网友
客户端爬取不是一个app, 它只是一个提供客户端爬取能力的sdk, 可以供任何第三方app集成。而sdk本身也不大android版aar包也仅150k. 而ios是以静态库方式提供,编译后会更小。
问题二:客户端爬虫应用在什么场景
”我不明白用户为何要安装这个 app 帮你爬取数据。即使用户有这个意愿,为什么要用手机这种计算能力这么弱的设备,为何不直接写一个浏览器插件或者脚本。总之,觉得太鸡肋了“ --掘金网友
需求场景我在爬虫技术二-客户端爬虫 中已经讲过:
“近年来,随着P2P的快速发展,互联网金融更是处于风口浪尖,这个万亿级的市场,吸引了一大批公司,像蚂蚁金服、陆金所、爱钱进、理财通、百度金融等等。而互联网金融的本质主要是风险控制、所以一个强大征信平台至关重要。从业务角度来看,互联网金融公司一般都会分为两块:资产端和资金端,也就是贷款方和投资方,而这里最具风险的就是对贷款方的资质审核,而所谓互联网金融,无非是将认证流程提到了线上,借款时,通过相应平台的的app完成申请流程。而借款流程中往往需要获取用户个人信息,进而对用户信用进行评定,如信用卡代还的借款需要用户信用卡账单邮箱,大额贷甚至需要用户支付宝交易记录、京东淘宝购买记录等等。而要获取这些信息,要么和都是需要用户授权/登录的,而这些网站通常为了安全期间,对ip请求的次数、频率都有着严格的限制,这导致传统的后台爬虫不能胜任,此时急需一种新的解决方案。”
也就是说,有些APP有获取用户个人信息的需求,而这些信息在后台获取会有诸多限制。
还有,值得一提的是,支付宝APP中也加入了爬取信用卡账单邮箱的功能:支付宝->芝麻分->信用卡账单 中绑定账单邮箱时会跳到qq邮箱手机版登录页面,登录成功后,便开始获取信用卡详单记录(但不知为什么,我的获取了2分钟左右提示失败了), 到底是怎么实现的,我猜应该也是在端上进行的爬取。
问题三:移动设备计算能力这么弱,为什么非得在客户端爬取?
这个问题在之前文章中讲过,主要的原因是:后台爬虫在一些情况下不能满足业务。如问题二中所述,目前客户端爬取技术主要是用于借款app中用于获取用户信用信息,而此时都会有一个用户授权/登录的过程,而如果依然用后台爬取的话,想想现在的网站登录页各种奇葩的验证码,将很难。还有就是后台爬取总会遇到ip限制导致不能爬取。 基于这两点,如果用户的某些关键信息对放款风控政策非常重要时,后台爬取的可用性将大大降低。
问题四:会侵犯用户隐私?
“这。。。让用户安装你的 APP 去让你收集自己的隐私。。。会上头条的。” -掘金网友
“不道德,如果用在一个成熟的app上面,难免会遭遇投诉,举报。”-简书网友
道不道德,取决于产品的动机 ,技术只是技术, 如果产品需要一些用户数据, 完全可以先告知用户,在用户授权后再继续。这不仅仅是客户端爬取面对的问题,如果开发者不怀好意,或者产品经理和老板没节操(比如要求开发在app中获取用户短信等),只要用户运行你的app,都可能会泄漏隐私。技术无罪,刀不杀人,关键是看持刀的人,而客户端爬取只是技术。
问题五:客户端爬取效率如何?
客户端爬取是单线程,并不适合大规模爬取。其实,在客户端,你也不应该进行大规模爬取,因为这样会严重消耗用户流量!
问题六:目前就只支持android/ios吗?客户端爬取还有没有进一步计划?
我本想将客户端爬取做成两部分:
- 移动端;也就是现在大家看到的。
- pc端:面向程序员,提供一个pc端爬取环境,然后这个环境基于v8,带界面。爬取脚本和移动端一样,相互兼容,都使用js,共用一套api.
目前 android sdk已开发测试,ios sdk 马上也会开放。而pc端工具做了70%。由于作者时间精力有限,会先确保移动端sdk稳定可用。
问题七: 客户端爬取和后台爬取哪个更好?
没有最好的技术,只有最合适的技术。 客户端爬取主要是在交互复杂、后台ip限制的情况下有优势。而后台爬取的优势在于可以大规模爬取,收集数据。具体选哪个,需要根据自身业务选择。
问题八:客户端爬取真的那么牛叉吗,是不是吹过了,作者装逼吧?
对于这种问题,向来是不屑于反驳,因为这个问题已不是单纯的讨论技术了。不是每一个人都可以改变世界,我尊敬那些能给这个世界带来新的东西的人。当然,所有人都有评价的权利。
最后
若仍有疑问,请留言,或github.