python反爬经验实战,适合小白入门,新手提升,大牛晋升。包含本人目前遇到反爬汇总,文章一周2-3篇,为了质量考虑,更新较慢,敬请谅解。购买专栏私信博主加微信,可无偿提供学习辅助。 考虑到新手朋友,博文会讲得较细,高手的话对于一些简单部分可快速略过即可.
爬虫中的反爬与反反爬
1 爬虫工程师与开发工程师的较量
相信大家对下面这幅图应该都不陌生,爬虫工程师与开发工程师的反爬与反反爬的较量(图片来自网络)
2 七种常见反爬及其解决措施
在数据采集(爬虫)过程中,总是会遇到各种各样的反爬措施,总体概括起来不外乎以下几种:headers、cookie验证,用y验证码验证,JavaScript加密处理数据…(目前大概遇到想到的汇总起来大概也就一下7种,欢迎评论、留言、私信补充,将及时补充到本文)
-
2.1 headers、cookie验证
headers、cookie验证:只需构造相应的请求头、建立相应的cookie池(or账号池)即可;参考博客:python爬虫请求头大全。
cookie验证最常见的是一些需要登录的网站,比如京东、淘宝等
例如某网站不带cookie发起请求,直接提示检测到恶意攻击
-
2.2 用户行为验证
用户行为验证:用户行为异常,具体的可以从用户的访问频率,用户从何处点击进来的(Referer)、采用了selenium类自动化测试等均可识别出来;解决方法有难有易:限制访问频率,headers中Referer字段加上上一次的请求路由,尽量伪装自动化测试工具属性即可。有兴趣的可以去研究用selenium登录最新版知乎…
-
2.3 封IP
封IP:触发封IP的原因很多,解决方法不外乎构造IP池或者直接购买IP代理;参考博客:Python抓取代理IP----用代理采集代理,构建自己的代理IP池。
-
2.4 JavaScript加密
JavaScript加密:JavaScript加密的唯一方法就是耐心一步一步调试(用钱买方法除外#滑稽),具体网站具体分析。可从最简单学起,参考博客:百度翻译的sign值。
-
2.5 字体加密
字体加密:目前来说,本人遇到的字体解密大概分为三种情况:
第一种是网站带有字体库:比如汽车之家的字体解密设定阈值,大众点评的构造字体映射,最新猫眼电影金额的K近邻算法;参考博客:某点评网站静态字体加密(woff字体映射法)、K近邻算法与CSS动态字体加密。
第二种的话是JS加密字体:如下图,后端将所有数据加密到一串JSON数据中,再在前端解密即可,具体情况具体分析(搞不定找我#滑稽)
还有一种特殊的字体加密,不多说,直接看图,懂得自然懂,目前本人博客网站也是用的这种简易反爬:
-
2.6 验证码验证
验证码验证:验证码应该是目前反爬较为常见的,通常用于用户登陆、用户行为异常用来区分人机。
验证码类型很多,有验证码方面需求的可评论区留言或者私信,接验证码破解。具体思路参考爬虫9种验证码破解思路及其实现(发布时间未到)
部分验证码类型如下:
- 2.7 禁止打开 F12 开发者工具,禁用ctrl+v、alt、shift等
禁止打开 F12 开发者工具,禁用ctrl+v、alt、shift等:禁用F12开发者工具调试、禁止ctrl+c复制等方式对于小白来说很好用,但是稍微懂点基础的都可以很快的解决:开发者工具可通过点击打开,复制等可通过查看网页源码复制(view-source:+url);
禁止ctrl+c网站示例:http://www.ccgp-shanxi.gov.cn/view.php?nid=632238
获得转载许可请注明转自https://leejason.blog.csdn.net/article/details/107457651