💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
**1. 基于请求频率或总请求数量进行反爬** 爬虫的行为与普通用户有着明显的区别,爬虫的请求频率与请求次数要远高于普通用户。 * 通过请求ip/账号单位时间内总请求数量进行反爬 * 反爬原理:正常浏览器请求网站,速度不会太快,同一个ip/账号大量请求了对方服务器,有更大的可能性会被识别为爬虫 * 解决方法:对应的通过购买高质量的ip的方式能够解决问题/购买个多账号 * 通过同一ip/账号请求之间的间隔进行反爬 * 反爬原理∶正常人操作浏览器浏览网站,请求之间的时间间隔是随机的,而爬虫前后两个请求之间时间间隔通常比较固定同时时间间隔较短,因此可以用来做反爬 * 解决方法∶请求之间进行随机等待,模拟真实用户操作,在添加时间间隔后,为了能够高速获取数据,尽量使用代理池,如果是账号,则将账号请求之间设置随机休眠 * 通过对请求ip/账号每天请求次数设置阈值进行反爬 * 反爬原理:正常的浏览行为,其一天的请求次数是有限的,通常超过某一个值,服务器就会拒绝响应 * 解决方法:对应的通过购买高质量的ip的方法/多账号,同时设置请求间随机休眠 **2. 根据爬取行为进行反爬,通常在爬取步骤上做分析** * 通过js实现跳转来反爬 * 反爬原理:js实现页面跳转,无法在源码中获取下一页url。 * 解决方法:多次抓包获取条状url,分析规律 * 通过蜜罐(陷阱)获取爬虫ip(或者代理ip),进行反爬 * 反爬原理:在爬虫获取链接进行请求的过程中,爬虫会根据正则,xpath,css等方式进进行后续链接的提取,此时服务器端可以设置一个陷阱url,会被提取规则获取,但是正常用户无法获取,这样就能有效的区分爬虫和正常用户 * 解决方法:完成爬虫的编写之后,使用代理批量爬取测试/仔细分析响应内容结构,找出页面中存在的陷阱 * 通过假数据反爬 * 反爬原理:向返回的响应中添加假数据污染数据库,通常家属剧不会被正常用户看到 * 解决方法:长期运行,核对数据库中数据同实际页面中数据对应情况,如果存在问题/仔细分析响应内容 * 阻塞任务队列 * 反爬原理:通过生成大量垃圾url,从而阻塞任务队列,降低爬虫的实际工作效率 * 解决方法:观察运行过程中请求响应状态/仔细分析源码获取垃圾url生成规则,对URL进行过滤 * 阻塞网络IO * 反爬原理:发送请求获取响应的过程实际上就是下载的过程,在任务队列中混入一个大文件的url,当爬虫在进行该请求时将会占用网络io,如果是有多线程则会占用线程 * 解决方法:观察爬虫运行状态/多线程对请求线程计时/发送请求钱 * 运维平台综合审计 * 反爬原理:通过运维平台进行综合管理,通常采用复合型反爬虫策略,多种手段同时使用 * 解决方法:仔细观察分析,长期运行测试目标网站,检查数据采集速度,多方面处理