这一节介绍一下通过JSON进行前后端交互的爬取技巧和一些我个人觉得挺有意思的反爬措施.
JSON交互的话,基本就是通过ajax动态加载技术将后台传回的数据通过js渲染的方式放进网页中.由服务端发送一个ajax请求,然后根据后台配置返回相应的JSON数据来进行动态渲染.如果网站是这么运行的,那么页面就无需重新加载整个网页就可以对网页的某部分进行更新。绝大多数都是与后台搭建的服务端API所进行交互的.大概使用这种方式的你都会找到一个界面类似于下图这样的.这图是bilibili视频的api接口,也就是后台与前端进行交互的地方.
该技术其实严格意义上不算反爬措辞,相反,由于JSON的便利性,解析JSON要比解析页面文件要来的方便和快速的多.但至少对于才入门只会解析页面的新手来说,还是有一些难度的.
面对这种技术的话,我们应对的方式也很简单,那么就是对网页进行抓包,探知该与此网页进行数据交换的后台服务的地址,然后我们伪造和网页相同的数据包,跳过网页直接请求后台服务,得到所需的数据. 不过这类后台服务一般设有封禁类策略,在请求的时候,要特别注意阀值。目前使用的抓包工具一般是burpsuite,fidder或者Chrome和Firefox的开发人员工具.有关于JSON解析的话,我们可以通过json解析服务完成在线解析,.你通过这一步就可以把上图中的json解析成这样:
..:这样就可以得知json的结构,从而快速轻巧的从中得到你要的数据.
关于前面所有的投毒,伪造404页面就是我觉得有意思的一些反爬技巧的了,有时候是真觉得反爬系统的开发者有着很大的脑洞。如何将数据混淆到爬虫无法获取但正常用户又能一眼就能知晓数据.这里简单举几个我遇到过的例子就结束,因为没有规则,所以解决方案还得见招拆招。
-
网易云音乐里面的数据是异步加载嵌套在i-frame里面,并且src=="about:blank".这也就意味这你怎么定位都定位不了
- 去哪儿网的乱码,其特征是关键信息不是正常字符,而是通过图片或者乱码来展示(通过渲染让乱码成为可阅读的正常字符)。
- 一些网站利用封禁策略中的检测手段然后给予无限循环页面或者是404欺骗页面给爬虫还有就是喂给爬虫无限循环页面或者投递错误的数据.
好了,现在反爬措施也讲完了。那么如果下次你们在遇到像上面这些措施的话,该知道怎么样才能绕过去了吧.如果那时候不记得了,记得回来再看一遍哦。