此项目主要分为三个部分
- 爬虫案例
对一些网站的数据进行爬取,标记出 难度和要点 - web网站 http://learnspider.evilrecluse.top/
根据反反爬经验,尝试去接入、编写各类爬虫障碍,顺便研究前端/后端/服务器知识 - 辅助工具/脚本制造
尝试制作各种工具/脚本
| 难度 | 内容 | 信息 | 方式 | 难点 |
|---|---|---|---|---|
| 基础 | 各类库的简单用法 | 基本使用方法 | 查看文档 编写demo |
|
| 入门 | 猫眼电影排行榜top100 | 静态网页 | requests | |
| 亚马逊中国商城搜索页 | 静态网页 | requests | ||
| 今日头条搜索结果 | 动态网页 | requests | ||
| 微博移动端用户动态信息 | 动态网页 | requests | since_id参数的所在地 | |
| Bilibili观察者 见齐指数 | 动态网页 | requests | 被压缩的 指数数据 的还原 | |
| 最简单的滑块验证码 | 动态网页 | Selenium | 滑块移动 | |
| 简单 | 某路由器密码加密方法 | 单个js文件 | 寻找加密函数 | |
| 无限debugger处理 | 动态网页 | reres | 反调试 | |
| AAEncode解加密 | 动态网页 | Devtool | 编码加密 | |
| CSS元素绝对定位反爬 | 静态网页 | pyppeteer | 还原元素顺序 | |
| CSS伪类反爬 | 静态网页 | requests | 还原伪类内容 | |
| 58同城品牌公寓 | 静态网页 | requests | 静态字体加密 | |
| 安居客指纹研究 | 单个js文件 | Devtool | 研究明白收集的信息的意义 | |
| 一般 | 知乎文章信息 | 动态网页 | requests | 头部`x-zse-86`参数加密 基于时间的反调试 |
| china_cn字体加密处理 | 动态网页 | fontTool | 动态字体加密处理 | |
| 百度混淆代码处理 | 单个js文件 | @bebel | 各类还原插件编写 | |
| 加速乐混淆代码处理 | 拦截设置Cookies | @bebel | OB混淆代码还原 | |
| 较难 | carbosynth抓取一张图 | 简易TLS指纹 | 修改默认安全组件配置 | 理解TLS |
网站网址(已备案): http://learnspider.evilrecluse.top/
| 类型 | 难度 | 名称 | 信息 |
|---|---|---|---|
| 滑块验证 | 入门 | 最简单的滑块验证 | 只要拖动滑块,滑到尽头就可以通过,不存在任何检测 |
| 简单 | SliderCaptcha | 默认设置部署,存在基本的人机验证,匀速拉动/直线拉动不会通过验证 | |
| CSS反爬 | 入门 | 绝对定位反爬 | 利用绝对定位的特性,将数据分散打乱写入html后,通过坐标还原观感 |
| 简单 | 伪类反爬 | 利用伪类content能显示数据的特点,将部分数据用content展示 | |
| 一般 | 静态字体加密反爬 | 让一些Unicode文字使用自定义字体解析,让使用标准Unicode解析的人爬不到数据 单个访问过程中字体并不会变化 |
|
| js反爬 | 入门 | 反调试 | 利用 定时启动的/嵌套的debugger来让浏览器一直处于无法退出的调试状态 |
| 简单 | 禁调试 | 编写代码禁止打开浏览器控制台 | |
| 简单 | AAEncode | 用表情字符取代常见字符,让人难以阅读 | |
| 简单 | JSFuck | 用几种基本字符取代大部分常见字符,让人难以阅读 | |
| 数据加密 | 一般 | AES对称加密 | 将传输的数据进行加密 |
| 一般 | 自定义Base64码表加密 | 将传输的数据进行加密 | |
| 指纹反爬 | 简单 | 最简易Selenium识别 | 检查自动创建两个的变量 |
| 使用 | 信息 | |
|---|---|---|
| 规范 | REST | 规范的API,规范的响应 |
| CDN | bootcdn.cn | 免费的前端开源项目 CDN 加速服务 |
| 前端 | JQuery 2.2.4 | 一个快速、简洁的JavaScript框架 |
| Materialize | 基于Material Design的前端响应式框架 | |
| twitter-bootstrap 3.4.1 | Twitter推出的一个用于前端开发的开源工具包 | |
| font-awesome 4.7.0 | 一套图标字体库和CSS框架 | |
| metisMenu 3.0.6 | Vanilla-JS 折叠菜单插件 | |
| 代理服务器 | nginx | 高性能的HTTP/反向代理服务器 |
| Web服务器 | uWSGI | 一个Web服务器 |
| 后端 | Flask 1.1.2 | Python轻量级web框架 |
| Flask-RESTful 0.3.8 | 一个支持快速创建REST APIs的 Flask插件 |
| 工具/脚本制造 | |||
|---|---|---|---|
| 内容 | 信息 | ||
| Auto DL ChromeWebDriver |
Windows中,自动下载 Selenium ChromeWebDriver 脚本 从注册表获知 Chrome 版本信息,从google下载最符合版本的 Web Driver,使得 Selenium 能正常运行 (实际上更推荐在服务器上部署docker,拉取Selenium的Image,然后部署,远程调用的这种方式) |
||
| slother | 在 Selenium 基础上封装了一层, 以应对用 Selenium 进行爬虫的时候会碰到的常见问题 | ||
| @Babel/traverse API document | 自行编写的 Babel/traverse API 文档与用例, 内容已经转移到另外的仓库 由于Babel官方并没有给出 Babel/traverse 的文档,所以只能自行记录 内容根据源码内容自行理解/编写,可能存在错误,欢迎纠正 |
||
| Font Encryption Detective | 基于OCR制作的解字体加密脚本 | ||
- 完成3DM登录的内容
- 重构练习平台
- 完善Babel插件
2021年11月7日