2024-07-10
爬虫
00
请注意,本文编写于 90 天前,最后修改于 89 天前,其中某些信息可能已经过时。

目录

爬虫项目实战
Star History
说明
项目目录
request篇
解析html以及正则篇
scrapy篇
高性能异步爬虫
feapder
自动化篇
selenium
playwright
进阶篇
综合案例
js逆向专题
请求头或响应数据加密
webPack
环境检测
wasm加密
浏览器指纹检测
验证码篇
滑块篇
点选篇

爬虫项目实战

Star History

Star History Chart

项目地址: https://github.com/xishandong/crawlProject

说明

所有项目均为作者练手分享项目,如遇侵权请联系删除,仅作学习分享不能进行任何商业活动

由于程序完成的时间问题,部分项目可能无法复用

练习笔记见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篇;
    验证码篇-->滑块篇;
    验证码篇-->点选篇;

项目所用到的第三方库

bash
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 # 进度条 npm install crypto-js/cryptojs # 二选一,js标准密码库 npm insatll jsdom # js模拟浏览器的dom和bom npm insatll tough-cookie # 浏览器cookie

基础篇

request篇

难度标识项目名补充快捷导航
骑士侍从百度网页第一个爬虫程序点这里
骑士侍从ua识别初始反爬点这里
骑士侍从百度翻译认识post请求点这里
骑士侍从豆瓣电影基础点这里
骑士侍从肯德基位置查询json练习点这里

解析html以及正则篇

难度标识项目名补充快捷导航
准骑士获取fakeualxml解析点这里
准骑士4k图片爬取lxml以及解决编码错误问题点这里
准骑士58lxml以及分页爬取点这里
准骑士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状态都是存在的,也就是说原本登录过的网站我们访问直接就是登录状态了,可以方便很多,不需要我们创建浏览器的上下文点这里
大地骑士采集资料通过网站名采集网站的邮箱电话地址社交媒体链接,难点在于每个网站风格完全不一,所有数据也不一并且数量很大,写正则很不好写,处理异步也比较麻烦,仓库只列举了其中10个页面,需要编写者对正则以及异步playwright有一定的了解点这里
大骑士反检测浏览器通过大牛的js文件创建一个反检测的浏览器,可以绕过绝大部分的检测点这里
大地骑士起点vip小说爬取通过屏幕快照的方式绕过起点vip小说的css反爬,用到的知识点有:定位盒子,截图,滑动,处理边界,合并截图。此方案不是最优解,欢迎大家补充点这里

进阶篇

综合案例


难度标识项目名补充快捷导航
骑士某诗文网验证码相关,登录以及图片验证码解决 --- ddddocr点这里
大骑士语言爬虫利用网络将文本转为语言,支持中英韩三国语言点这里
大骑士b站综合检查用户是否给你点赞,拉去消息列表,拉取点赞列表点这里
大地骑士某视频网站m3u8视频下载,解决带密钥以及不带密钥情况,m3u8入门级别以及多线程下载点这里
大地骑士ins爬虫对于页面参数提取以及解析json文件点这里
大地骑士douyin全站数据爬取包括视频图片下载,评论爬取,用户信息爬取...点这里
大地骑士weibo全站数据爬取包括搜索用户,搜索帖子,下载评论,下载用户相册,用户主页,用户信息...点这里

js逆向专题


请求头或响应数据加密

难度标识项目名补充快捷导航
骑士烯牛数据请求头加密,响应体加密点这里
骑士娱乐指数基础入门点这里
骑士艺恩数据响应体加密点这里
骑士行行查响应体加密点这里
大骑士fjs公共交易混淆参数加密点这里
大骑士唯一艺术动态js运行代码点这里
大地骑士某天气网站动态js 动态key 动态参数 反debug点这里
大地骑士某足球网站请求体多重加密,加密位置难定位点这里
大地骑士wangyiyun音乐实现全站数据爬取点这里
大地骑士gds公共交易混淆参数,需要找定位点这里
大地骑士某道翻译请求加密响应解密,难度不大点这里
大地骑士b站登录rsa加密密码,极验三代文字点选,文字点选部分可见验证码篇点这里

webPack

难度标识项目名补充快捷导航
大地骑士china五矿基础webpack,标准版加密算法,简单,可用多种方式实现(nodejs,python和扣代码)点这里

环境检测

难度标识项目名补充快捷导航
辉耀骑士redBookxhs x-s环境检测,需要自己把cookie和localstorage放到文件中点这里
辉耀骑士bossjob__zp_s...__环境检测,每天js都不同,需要补一些环境,并且修改js,有一个module检测等...点这里
辉耀骑士猿人学2023第一题魔改md5和aes 删除部分蜜罐,补充浏览器环境即可点这里
大地骑士饿了么参数通过playwright获取bx_et参数点这里
辉耀骑士pdd的anti_content参数这个不是补环境,是扣的算法,pdd不同站点其实加密大概差不多,有些对象的值有所差别而已,加密的主函数都是一个逻辑点这里
大地骑士更新boss直聘物品点选解ip封锁,坐标识别就随便在网上找了一个了这个点选轨迹加密就是极验三代更新在boss那个文件里面了

wasm加密

难度标识项目名补充快捷导航
辉耀骑士某航空wasm操作内容实现加密解密 请求头参数加密更新 阿里系v2检测 阿里系v3检测(自动化获取),至此所有加密参数已解决点这里

浏览器指纹检测

难度标识项目名补充快捷导航
大地骑士易九批首先是加密请求体,其次是tls指纹检测,目前使用第三方库过了主页请求点这里

验证码篇

滑块篇

难度标识项目名补充快捷导航
大骑士JD滑块我们获取到图片之后可以使用ddddocr来进行识别滑块,然后生成轨迹发送请求即可,我们这里的轨迹采用大佬的写法,首先准备一条基准,从左往右手工滑完,然后一个抖动轨迹,之后拼接两个轨迹即可(不知道为什么我自己滑的轨迹验证都不通过,所以直接用了大佬的轨迹了)点这里
大骑士阿里226此次更新playwright获取,比较简单点这里
大骑士飞瓜获取验证码滑块此次更新playwright获取,比较简单点这里

点选篇

难度标识项目名补充快捷导航
辉耀骑士极验三代点选我们根据请求顺序依次请求接口获取图片,获取到图片信息后送入识别接口获取点选坐标,获取到坐标后将坐标转化,送入js生成轨迹,得到轨迹后请求接口获取validate点这里
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:回锅炒辣椒

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!