简介
此项目主要分为三个部分
- 爬虫案例
对一些网站的数据进行爬取,标记出 难度和要点 - web网站 http://learnspider.evilrecluse.top/
根据反反爬经验,尝试去接入、编写各类爬虫障碍,顺便研究前端/后端/服务器知识 - 辅助工具/脚本制造
尝试制作各种爬虫工具/脚本
已完成的内容 - 目前进度估计 2%
爬虫案例
案例列表 | ||||
---|---|---|---|---|
难度 | 内容 | 信息 | 方式 | 难点 |
基础 | 各类库的简单用法 | 基本使用方法 | 查看文档 编写demo |
|
入门 | 猫眼电影排行榜top100 | 静态网页 | requests | |
亚马逊**商城搜索页 | 静态网页 | requests | ||
今日头条搜索结果 | 动态网页 | requests | ||
微博移动端用户动态信息 | 动态网页 | requests | since_id参数的所在地 | |
Bilibili观察者 见齐指数 | 动态网页 | requests | 被压缩的 指数数据 的还原 | |
最简单的滑块验证码 | 动态网页 | Selenium | 滑块移动 | |
简单 | 某路由器密码加密方法 | 单个js文件 | 寻找加密函数 | |
无限debugger处理 | 动态网页 | reres | 反调试 | |
AAEncode解加密 | 动态网页 | devtool | 编码加密 | |
CSS元素绝对定位反爬 | 静态网页 | pyppeteer | 还原元素顺序 | |
CSS伪类反爬 | 静态网页 | requests | 还原伪类内容 | |
58同城品牌公寓 | 静态网页 | requests | 静态字体加密 | |
一般 | 知乎文章信息 | 动态网页 | requests | 头部`x-zse-86`参数加密 基于时间的反调试 |
基础练习网站
案例 | |||
---|---|---|---|
类型 | 难度 | 名称 | 信息 |
滑块验证 | 入门 | 最简单的滑块验证 | 只要拖动滑块,滑到尽头就可以通过,不存在任何检测 |
简单 | SliderCaptcha | 默认设置部署,存在基本的人机验证,匀速拉动/直线拉动不会通过验证 | |
CSS反爬 | 入门 | 绝对定位反爬 | 利用绝对定位的特性,将数据分散打乱写入html后,通过坐标还原观感 |
简单 | 伪类反爬 | 利用伪类content能显示数据的特点,将部分数据用content展示 | |
一般 | 静态字体加密反爬 | 让一些Unicode文字使用自定义字体解析,让使用标准Unicode解析的人爬不到数据 单个访问过程中字体并不会变化 |
|
js反爬 | 入门 | 反调试 | 利用 定时启动的/嵌套的debugger来让浏览器一直处于无法退出的调试状态 |
简单 | AAEncode | 用表情字符取代常见字符,让人难以阅读 | |
简单 | JSFuck | 用几种基本字符取代大部分常见字符,让人难以阅读 | |
一般 | AES对称加密 | 将传输的数据进行加密 | |
一般 | 自定义Base64码表加密 | 将传输的数据进行加密 | |
指纹反爬 | 简单 | Selenium识别 | 通过一些自动创建的变量识别Selenium |
技术应用 | |||
---|---|---|---|
使用 | 信息 | ||
规范 | RESTful | 规范的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插件 |
无用脚本制造
工具/脚本制造 | |||
---|---|---|---|
附属于 | 内容 | 信息 | |
Selenium | Auto DL ChromeWebDriver | 从注册表获知Chrome版本信息,从google下载最符合版本的Web Driver,使得Selenium能正常运行 (虽然实际上最好的解决方法不是这样做,而是在服务器上下一个docker,拉取Image,然后部署上) |
2020年11月4日