Skip to content

About

个人的 Python 爬虫实战项目合集:浏览器自动化、JS 逆向、多站点采集

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Python 爬虫项目

个人爬虫实战项目合集。每个子目录都是一个独立完成的小项目,覆盖 requests 静态抓取、xpath/jsonpath 解析、浏览器自动化(DrissionPage)、JS 逆向还原加签、音视频分离下载等方向。

配套的章节笔记与知识点练习在另一个仓库:python-spider。 本仓库只放综合实战项目。


项目索引

# 项目 技术路线 核心内容
01 B站热门榜单采集与热度监控系统 DrissionPage 浏览器自动化 驱动真实 Chrome 采集 B站 20 个分区热门榜单(100 条/分区),落盘 CSV,两轮快照比对输出播放量增长与排名变化
02 唯品会商品数据采集与价格监控系统 requests + JS 逆向 PyExecJS 调用还原后的加签算法绕过风控,实现品牌商品分页采集与价格异动监控
03 视频爬取练习 JS 逆向 + 音视频处理 逆向视频站点的解密逻辑(decrypt.js / decrypt_video.js),TS 分片并发下载后交给 ffmpeg 合流
04 外来物种入侵多网站 requests + jsonpath + BeautifulSoup 跨多个政府站点(农业农村部、湖北省人民政府、湖北省林业局)采集政策文件,统一清洗后输出 CSV
05 摸头表情包自动处理 DrissionPage 批量把 image/ 中的图片提交给在线 petpet 生成器,回存摸头 GIF 到 output/

目录约定

每个项目独立自洽,仓库层面只约定四样东西:

Python 爬虫项目/
├─ <项目名>/
│  ├─ README.md          # 项目说明(目标站点 / 难点 / 用法)
│  ├─ main.py            # 入口
│  ├─ requirements.txt   # 该项目依赖
│  ├─ output/            # 运行产出(CSV / 图片 / 音视频),不进仓库
│  └─ 其他文件            # 项目自有模块,见下
└─ .gitignore

除以上四项之外的一切文件,都是「项目自有模块」,由各项目按自身需要组织,不构成跨项目的通用约定。例如:

  • 外来物种入侵多网站/ 拆成 moa.py / hubei.py / hubei_forestry.py 三个站点脚本,由 main.py 统一分发;
  • 逆向类项目会带上自己的 *.js 产物(如 vip_apisign.js、decrypt.js)。

这类文件在各项目自己的 README 中有说明,本文件不做统一约束。

仓库只保留代码。 采集产出(CSV / XLSX / 图片 / 音视频)体积大且涉及版权,统一由 .gitignore 排除,需要数据请本地跑一遍脚本。


环境

  • Python 3.9+
  • 主要依赖:
依赖 用途
requests 静态接口抓取,用得最多
DrissionPage 浏览器自动化(需本机有 Chrome / Edge)
PyExecJS2 在 Python 中执行 JS,JS 逆向的核心工具(需本机装 Node.js)
jsonpath-ng / jsonpath 从 JSON 响应按表达式提取数据
beautifulsoup4 + lxml HTML 解析与正文抽取

补充说明:

  • 两个 JS 逆向项目运行时需要本机装 Node.js;
  • 视频爬取练习 还需要本机装 ffmpeg 并加入 PATH;
  • 各项目依赖以其目录下的 requirements.txt 为准。

说明

  • 所有项目仅用于个人技术学习,采集内容均为公开可访问信息,未触碰需要登录才能访问的私有内容。
  • 代码中的请求频率均做了主动限制(如 SLEEP_MIN / SLEEP_MAX),避免对目标站点造成压力。
  • 部分项目(如唯品会)依赖站点加签算法,站点改版后可能失效。
  • 唯品会 main.py 中的默认 Cookie 仅为本地跑通用的历史值,已失效;实际使用时可用同目录 cookie.txt 覆盖。

About

个人的 Python 爬虫实战项目合集:浏览器自动化、JS 逆向、多站点采集

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages