ad4462ef8aac97be5b6762a4c7f3f86e591bd7c6
This commit introduces a major architectural overhaul, migrating the data backend from a flat JSON file to a relational MySQL database. - Replaced multiple scraping scripts with a unified `main.py` that handles crawling, parsing, and database synchronization. - Introduced `mysql_helper.py` for robust database interaction with a connection pool. - Added `queries.sql` defining the new database schema for assets, categories, tags, and changelogs. - Removed all obsolete frontend code (v1, v2) and old scraping scripts. This change provides a more scalable and maintainable foundation for managing asset data.
🧲 Kenney Asset Scrapper
一个为开发者而生的自动化工具,专为抓取、整理和本地化 Kenney.nl 免费资源库而设计。支持批量提取资源信息、下载素材包和图片,并可生成本地资源索引,方便在离线环境中高效使用。
📁 项目结构
Kenney-Asset-Scrapper/
├── frontend/ # 已废弃的旧前端版本(v1~v3)
│ ├── v1/
│ ├── v2/
│ └── v3/
├── scrapper/ # 爬虫与处理核心
│ ├── main.py # 爬取所有资源链接与详情
│ ├── asset_downloader.py # 批量下载 ZIP 素材包
│ ├── image_downloader.py # 批量下载预览图
│ ├── kenney_data_to_local.py # 替换 JSON 为本地路径
🚀 功能亮点
| 模块 | 功能 |
|---|---|
main.py |
爬取 Kenney 网站资源列表与详情,包括标题、分类、版本日志、预览图与下载链接,并保存为结构化 JSON |
asset_downloader.py |
根据 JSON 批量下载 ZIP 资源,自动分类存储(按类型 + 系列) |
image_downloader.py |
批量下载所有预览图,结构化存储至本地 |
kenney_data_to_local.py |
将所有网络路径(资源/图片)替换为对应的本地路径,方便离线访问或嵌入其他系统 |
🛠 使用说明
-
抓取资源页面数据
python scrapper/main.py⏳ 会生成
kenney_links.txt和kenney_data.json。 -
下载 ZIP 素材包
python scrapper/asset_downloader.py✅ 下载到
kenney_assets/,按分类 & 系列整理。 -
下载图片预览
python scrapper/image_downloader.py🎨 所有图片将下载到
kenney_assets_images/,与资源信息匹配。 -
本地路径替换
python scrapper/kenney_data_to_local.py📝 生成
kenney_data_local.json,将所有download和images字段替换为本地路径。
🗃 示例结构
kenney_assets/
└── 2D/
└── Roguelike RPG/
└── Roguelike RPG V1.4.zip
kenney_assets_images/
└── 2D/
└── Roguelike RPG/
└── Roguelike RPG/
├── preview1.png
├── preview2.jpg
└── ...
🧪 注意事项
- 所有请求均带有浏览器头(User-Agent)以防被屏蔽
- 下载任务中加入了随机延迟以模拟人类操作,避免触发反爬机制
- 项目未来将继续支持更多格式,如 CSV 导出、数据库同步、本地 Web UI 预览等
📦 前端说明
原始 frontend/ 文件夹中的 v1~v3 版本已弃用,请转而使用新的 Vue 前端项目 👉 kenney-asset-frontend-vue
📜 License
MIT License © 2025 — Inspired by the generosity of Kenney and his contributions to the open game development community.
如需增强或集成至你的工作流,欢迎提 Issue 或 PR!
Let's automate creativity! 🎮✨
Description
Languages
Python
100%