Phase 1 MVP: crawl 10 high-quality oshwhub projects into LFS

Why:
- Charles 指定:先爬 10 个高质量项目存 Gitea LFS,一个项目一个文件夹,
  保留原文件和 URL。先以小批量验证 schema + LFS 流水线,放量前再拍板
  存储规模。

What:
- crawlers/oshwhub: 列表 API (`/api/project?sort=hot`) + SSR HTML 解析,
  一次性产出 metadata / description / cover / files / _urls
- schemas/project.schema.json: 跨源统一 schema
- docs/sources/oshwhub.md: API 入口 / 字段映射 / 陷阱调研
- pyproject.toml: httpx[http2] 单依赖
- .gitattributes: data/raw/**/files/** 一律走 LFS(规则写窄,避免误伤 schemas/*.json 等)
- .gitignore: 移除 data/raw/* 排除(改走 LFS 入库)

10 个项目覆盖:调试器 / 加热台 / 盖革计数器 / 数控电源 / 焊台 /
智能手表 / USB 测电流 / ZVS 感应加热 / AI 开发板 / 红外热成像。
共 52 附件 ≈ 524 MB 入 LFS,筛选判据 grade=4 & likes>=100 & 多样性。

Known gaps(见 plan.md § Phase 1.4):
- EasyEDA 源 JSON 需登录 (u.lceda.cn),v0.1 跳过
- fs-web-stream.jlc.com 的工程源下载未测
- scripts/validate.py 自动 schema 校验未实现

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Zhang Jiahao
2026-04-23 19:34:09 +08:00
parent bf2370f83b
commit 5ffa10f256
103 changed files with 2279 additions and 28 deletions

View File

@@ -0,0 +1,26 @@
{
"detail_url": "https://oshwhub.com/sheep_finder/pcb-heng-wen-jia-re-tai",
"cover_url": "https://image.lceda.cn/avatars/2022/10/q3e5mInHcWPvP4K2wqCpzB0dJr8n0tCHj4OJb4Wh.png",
"attachments": [
{
"name": "加热台量产计划.zip",
"url": "https://image.lceda.cn/attachments/2023/3/3D63VEzSSgu7tMjN4RTiEbDSiqmlo1Yiv6uvNWXk.zip",
"original_id": "bebc0475e03e43199806c4dfc78847b1"
},
{
"name": "焊接烧录指引v2.pdf",
"url": "https://image.lceda.cn/attachments/2023/4/2AhHlXehkZO4nC0zGTVH5TKH50X0IHZtmacdlfWq.pdf",
"original_id": "3bd33eb9d73b4b4db05820c9fbfccbc1"
},
{
"name": "加热台Q&amp;A.docx",
"url": "https://image.lceda.cn/attachments/2023/4/RwQkCsS9xv2UWoZ3JbVPgKa7IULczPGBFyk9tWLm.bin",
"original_id": "e5f6f384fb11489f99e27e8aebf06ffb"
},
{
"name": "2023-2-7 焊接编码器教程.pdf",
"url": "https://image.lceda.cn/attachments/2023/4/8cflSrzwHsuPme258lpLoQLVym2YisHLNzmWsgly.pdf",
"original_id": "21963ef73c534309b1754bd2ce452a2f"
}
]
}