此项目主要分为三个部分
- 爬虫案例
对一些网站的数据进行爬取,标记出 难度和要点 - 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日