背景
最近做淘*页面分析的时候,遇到一些问题这里总结一下。
当需要获取一个系统的信息的时候,现阶段能采取的方案有
方案 | 备注 |
读库 | 需要数据库权限 |
api | 鉴权,反爬虫,人类识别 |
页面抓取 | 反爬虫,人类识别 |
我们一般使用的都是API层面的爬虫用于获取数据,有些情况下会用到页面抓取比如页面监控
首选读库:
获取数据能从数据库读当然先从数据库下手,但考虑到用爬虫的一般都拿不到数据库,这个可用性较小。
其次使用接口:
这里的使用方式包括不限于直接调取、破解调取。一般对外的接口都会做一些鉴权限流反爬虫人类识别的限制。
最次是页面抓取:
直接获取html解析;使用无头浏览器像PhantomJS或者Chrome headless模式进行页面的抓取解析,一般的页面都没问题,但像淘*支付*这样的页面分分钟陷入反反反反对抗;其他的方式就是直接操作windows的鼠标键盘页面API简单点就是直接使用像按键精灵的工具进行虚拟人操作。
问题
最近的一个问题就是分析淘宝页面的时候使用了Chrome + selenium+ python,发现被限制,网上说页面加载的JS中会判断环境(像判断driver等不同于正常浏览器的地方)。。。然后换方案使用按键精灵直接操作浏览器,可以是可以但是操作下来太麻烦,区域找图一套一套的。
后来在回顾的时候发现有api可以直接调用(之前pass掉的原因是对接淘宝的接口需要营业执照,这次发现可以用中间商的接口),注破解接口有风险小心被投毒。
总结
总的来说爬虫只是获取一个系统信息手段中的一种,抽象的层次高了就会有更多的手法。