基于身份识别的反爬

1. 通过headers字段来反爬

通过headers中的user-agent字段来反爬

反爬原理:爬虫默认情况下没有user-agent,而是使用模块默认设置

解决方法:请求之前添加user-agent即可,更好的方式是使用user-agent池来解决(收集一堆的user-agent的方式,或者是随机生成user-agent)

通过referer字段或者是其他字段来反爬

反爬原理:爬虫默认情况下不会带上referer字段,服务器通过判断请求发起的源头,以此判断请求是否合法

解决方法:添加referer字段

通过cookie来反爬

反爬原理:通过检查cookies来查看发起请求用户是否具备相应权限,以此来进行反爬

解决方案:进行模拟登录,成功获取cookies之后在进行数据爬取

2. 通过请求参数来反爬

通过从html静态文件中获取请求数据(github登录数据)

反爬原理:通过增加获取请求参数的难度进行反爬

解决方法:仔细分析抓包得到的每一个包,搞清楚之间的联系

通过发送请求获取请求数据

反爬原理:通过增加获取请求参数的难度进行反爬

解决方法:仔细分析抓包得到的每一个包,搞清楚之间的联系,搞清楚请求参数的来源

通过js生成请求参数(后面的js逆向破解加密)

反爬原理:js生成了请求参数

解决方法:分析js,观察加密实现的过程,通过js2py获取js的执行结果,或者使用selenium来实现

通过验证码来反爬

反爬原理:对方服务器通过弹出验证码强制检验用户浏览行为

解决方法:打码平台或者是机器学习的方法识别验证码,其中打码平台廉价易用,更值得推荐

你可能感兴趣的:(开发语言,爬虫)