企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**1. 通过headers字段来反爬** 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,观察加密的实现过程,通过js2py获取js的执行结果,或者使用selenium来实现 * 通过验证码来反爬 * 反爬原理:对方服务器通过弹出验证码强制验证用户浏览行为 * 解决方法:打码平台或者是机器学习的方法识别验证码,其中打码平台廉价易用,更值得推荐