CrawlProject
python爬虫项目合集,从基础到js逆向,包含基础篇、自动化篇、进阶篇以及验证码篇。案例涵盖各大网站(xhs douyin weibo ins boss job,jd...),你将会学到有关爬虫以及反爬虫、自动化和验证码的各方面知识
Install / Use
/learn @xishandong/CrawlProjectREADME
爬虫项目实战
说明
作者个人博客
所有项目均为作者练手分享项目,如遇侵权请联系删除,仅作学习分享,不能进行任何商业活动。
由于程序完成的时间问题,部分项目可能无法复用。
练习笔记见note.txt
此项目将持续更新
项目部分实战讲解见b站:https://space.bilibili.com/35242527/channel/collectiondetail?sid=1590251
下面是个人对于网站爬取难度评级
| 等级 | 标识 | 难度描述 | |----------|-----|------------| | 蜘蛛卵 | 0 | 入门 | | 幼蛛 | 00 | 踏过门槛了 | | 小蜘蛛 | * | 初级 | | 大蜘蛛 | ** | 比初级高一点 | | 巨蜘蛛 | *** | 中等难度 | | 辉耀蜘蛛 | + | 中上难度 | | 毒蛛 | ++ | 比较难 | | 蜘蛛王 | +++ | 难 | | 蜘蛛精 | KING| 地狱 |
项目目录
graph TD;
基础篇-->request篇;
基础篇-->解析html以及正则篇;
基础篇-->scrapy篇;
基础篇 -->高性能异步爬虫;
基础篇-->feapder;
自动化篇-->selenium
自动化篇-->playwright;
进阶篇-->综合案例;
进阶篇-->js逆向专题;
js逆向专题-->请求头或响应数据加密;
js逆向专题-->浏览器指纹检测;
js逆向专题-->webPack篇;
js逆向专题-->环境检测篇;
js逆向专题-->wasm篇;
验证码篇-->滑块篇;
验证码篇-->点选篇;
项目所用到的第三方库
pip install requests # requests库,爬虫的开始
pip install curl_cffi # 标准tls请求库
pip install lxml # xpath提取数据
pip install playwright # 自动化需要
pip install ddddocr # 识别验证码
pip install selenium # 自动化需要,推荐playwright
pip install scrapy # 爬虫框架
pip install "feapder[all]" # 新一代爬虫框架
pip install pycryptodome # python标准密码库
pip install pyexecjs2 # python调用js代码
pip install m3u8 # 下载m3u8视频
pip install prettytable # 格式化输出
pip install tqdm # 进度条
pip install loguru # 强大的日志工具库
pip install retrying # 强大的重试工具
npm install crypto-js/cryptojs # 二选一,js标准密码库
npm install jsdom # js模拟浏览器的dom和bom
npm install tough-cookie # 浏览器cookie
基础篇
request篇
| 难度标识 | 项目名 | 补充 | 快捷导航 | |------|---------|----------|-------------------------------------------------------------------------------------------------| | 骑士侍从 | 百度网页 | 第一个爬虫程序 | 点这里 | | 骑士侍从 | ua识别 | 初始反爬 | 点这里 | | 骑士侍从 | 百度翻译 | 认识post请求 | 点这里 | | 骑士侍从 | 豆瓣电影 | 基础 | 点这里 | | 骑士侍从 | 肯德基位置查询 | json练习 | 点这里 |
解析html以及正则篇
| 难度标识 | 项目名 | 补充 | 快捷导航 | |------|----------|----------------|---------------------------------------------------------------------------------------------------| | 准骑士 | 获取fakeua | lxml解析 | 点这里 | | 准骑士 | 4k图片爬取 | lxml以及解决编码错误问题 | 点这里 | | 准骑士 | 58 | lxml以及分页爬取 | 点这里 | | 准骑士 | bs基础 | 初始bs | 点这里 | | 准骑士 | bs案例 | 实战bs | 点这里 | | 准骑士 | xpath基础 | 初始xpath | 点这里 | | 准骑士 | xpath解析 | 练习xpath | 点这里 | | 准骑士 | 正则基础 | 初始正则 | 点这里 | | 准骑士 | 正则练习 | 实战正则 | 点这里 | | 准骑士 | 简历爬取 | 以上的小综合 | 点这里 |
scrapy篇
| 难度标识 | 项目名 | 补充 | 快捷导航 | |------|---------|-----------------------------|------------------------------------------------------------------------------------------------| | 大骑士 | bossjob | 一级页面爬取,可能不可用 | 点这里 | | 大骑士 | 双色球 | 都是基本scrapy操作 | 点这里 | | 大骑士 | 图片 | 都是基本scrapy操作 | 点这里 | | 大骑士 | 阳光政策 | 都是基本scrapy操作 | 点这里 | | 大骑士 | yi车数据爬取 | 带有js逆向,不过是入门级,以及大批量json数据解析 | 点这里 | | 大骑士 | 校花网 | 都是基本scrapy操作 | 点这里 | | 大骑士 | 网易新闻 | 都是基本scrapy操作 | 点这里 | | 大骑士 | 17k小说爬取 | 都是基本scrapy操作 | 点这里 |
高性能异步爬虫
| 难度标识 | 项目名 | 补充 | 快捷导航 | |------|-------------|------|---------------------------------------------------------------------------------------------------------------------------------------------------------| | 骑士侍从 | 认识flask | 基础知识 | 点这里 | | 骑士 | 线程池基础 | 基础知识 | 点这里 | | 大骑士 | meinv图片批量爬取 | 基础 | 点这里 | | 大骑士 | 明星图片爬取 | 基础 | 点这里 | | 大骑士 | 多任务协程 | 基础 | 点这里 | | 大骑士 | 线程池应用 | 基础 | 点这里 |
feapder
| 难度标识 | 项目名 | 补充 | 快捷导航 | |----------|---------|-----------------------------------------------------|-------------------------------------------------------------------------------------------------| | 辉耀骑士 | 小红书数据采集 | 使用air模式的feapder,自定义csv储存管道,未来会以更多模式改写,以及更多功能加入,还迎补充 | 点这里 |
自动化篇
selenium
| 难度标识 | 项目名 | 补充 | 快捷导航 | |------|--------------|---------|-----------------------------------------------------------------------------------------------------------| | 骑士侍从 | 基础自动操作 | 基本自动化操作 | 点这里 | | 骑士侍从 | 模拟登陆 | 练习自动化 | 点这里 | | 骑士侍从 | 动作链和ifream处理 | 练习自动化 | 点这里 | | 骑士侍从 | 无头浏览器和反检测 | 练习 | 点这里 | | 骑士 | 12306模拟登录 | 多半不可用 | 点这里 | | 骑士 | damai网 | 多半不可用 | 点这里 |
playwright
| 难度标识 | 项目名 | 补充 | 快捷导航 | |------|--------------|-----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------| | 骑士 | 邮政编码 | 通过地址查询邮政编码,使用同步方式,包含等待操作以及根据情况选择不同的表格,同时使用pandas对excel文件进行操作 | 点这里 | | 大骑士 | 采用本地浏览器进行反爬虫 | 我们使用自动化时有时会被检测,我们这里使用本地浏览器进行反爬虫,并且由于是本地浏览器,我们的session状态和cookie状态都是存在的,也就是说原本登录过的网站我们访问直接就是登录状态了,可以方便很多,不需要我们创建浏览器的上下文 | 点这里 | | 大地骑士 | 采集资料 | 通过网站名采集网站的邮箱电话地址社交媒体链接,难点在于每个网站风格完全不一,所有数据也不一
