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>
39 lines
479 B
Plaintext
39 lines
479 B
Plaintext
# Derivative 数据(可从 raw 重建),不入库
|
||
data/processed/*
|
||
data/state/*
|
||
!data/processed/.gitkeep
|
||
!data/state/.gitkeep
|
||
|
||
# data/raw 入库(工程二进制走 LFS,见 .gitattributes)
|
||
|
||
# Python
|
||
__pycache__/
|
||
*.py[cod]
|
||
*.egg-info/
|
||
.pytest_cache/
|
||
.ruff_cache/
|
||
.mypy_cache/
|
||
.venv/
|
||
venv/
|
||
.env
|
||
.env.*
|
||
!.env.example
|
||
|
||
# uv
|
||
uv.lock
|
||
|
||
# Node (if we add JS helpers)
|
||
node_modules/
|
||
|
||
# Editor / OS
|
||
.vscode/
|
||
.idea/
|
||
.DS_Store
|
||
Thumbs.db
|
||
*.swp
|
||
|
||
# Local scratch
|
||
/tmp/
|
||
/scratch/
|
||
*.log
|