一次成功的爬虫畅想

大家都知道,互联网是一个信息互联的世界,人们获取信息很方便快捷。由于这个特性,给人们的工作和生活带来了巨大的变化。

故互联网最重要的是“信息”,所以绝大多数的互联网公司都是在信息的交换和处理上下功夫,Google/Baidu把信息进行检索,能更快捷获取到人们想要得到的信息;FB/腾讯微信把信息通信做到极致简单,无论在天涯海角都若比邻;淘宝能在家里就获取到商品信息,消除了物理距离购物的限制。

还有些公司是直接获取公共信息上赚钱,比如天眼查,企查查,小白兔等,这类公司的商业逻辑就是获取(多数是爬虫)到公共信息(企业工商信息/商标信息/专利信息/法律官司信息),通过APP或者web的方式体现,使人们查询自己想要的信息更加方便。

随着爬虫的流行,大部分公司的网站开始了信息安全的重视,于是一场爬虫与反爬虫的斗争开始拉开序幕。“你有张良计,我有过墙梯”,一方面,一些政府机构/企业花重金开始打造一个不被爬虫机器人爬取的网站,另一方面,对于技术孜孜不倦的程序员又不甘示弱,把找到对方的破绽最为最大的成就。

我最近在工作中需要爬取一些信息(当然是公共信息,不涉及到违法),爬取成功有些小收获,在此总结一下:

面对的问题和困难:1.web上有部分信息,手机app上有全部信息。在web上的信息通过chrome或者firefox有专门的调试工具,很快的就能分析出API接口,但手机上复杂一些,需要设置代理,通过专门工具进行抓包分析(我用的mac找到一个非常好用的抓包软件charles)。

2.调用的API接口,有一个参数进行了加密,如果传入的参数不对,后台校验不过就会返回“在月球上”的错误(如果这个问题解决不了,就无法完成整网的爬取)。根据分析,加密函数既然是在终端上加密的,那一定会保存在终端里面。APP是没法查看源文件了,但浏览器一定是能找到这个加密函数的(应该是保存在某个js代码里面),但是这个网站的js是经过一些处理的,可读性不高,只有通过打断点分析最有可能出现的js加密代码块是在哪个位置。功夫不负有心人,在如下代码中找到加密的算法,“q”就是调用api的其中一个参数。是对当前时间戳+“9527”+时间戳的前六位数的字符串生成的一个MD5字符串.

var p = Date.now().toString()

  , q = md5(p + "9527" + p.substr(0, 6));

成功破解了此参数,就相当于爬虫功能成功了一半。

3.为什么破解了参数只能说成功了一半呢,因为这个网站的web端的api接口和app端的api接口以及加密算法不是一样的;而web端只能获取到部分信息,对于最关键的信息,在web端没有看到接口。有时爬取是靠一些运气成分的,我把app端的api接口名称拷贝到web端上,构造相应的参数,加密参数使用web端的,居然成功了(说明后台程序有此接口,而且web接口名称和app的接口名称是一样的)。如果web端的此api接口没有找到,那就只有半自动化来实现了。

解决了以上难题,很快就把代码写出来再调试,设置时间延迟,花了一天的功夫,此网站的所有信息都爬取出来,存储在MongoDB中。

在此,有种KO对手的成就感油然而生,此文没有粘贴api信息和代码信息(需要保证别人的隐私),可能会给大家读此文会造成理解上的困难。回过头来看,其实爬取成功并不是自己很厉害,如果对方再加上一点点防御手段(比如web的api接口名称和app的api接口名称不做成一样的),想成功自动化爬取信息就非常困难了。

所以回过头来看,爬虫与反爬虫就是矛和盾的关系。如果不做成一个爬虫高手,如何可能做成一个安全专家??

爬虫的知识还有很多,还有很多挑战(比如商标局的信息)。我后面还会不定期输出爬虫知识。对于此文有更细节想要了解的朋友,可以加我微信交流:liuhaibo102685

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,161评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,891评论 18 139
  • 今天遥哭了,至于为什么,他说不知道! “是不是作业太多了?” “不知道。” “是因为最近太累了吗?” “不知道。”...
    好阳光阅读 604评论 0 4
  • 开学初,晓璐的工作有班主任的,学生处的,教学的还有自家的。她经常说自己脑容量不够大,做事拖拖拉拉。 这天刚进办公室...
    思彤lu阅读 212评论 0 1
  • 南和县三思乡中心校2018年2月13日师德师风建设直通车: 一、经典感言:做人常思过,做事常思人。...
    河北南和刘志玉阅读 489评论 4 9