Allow login content; plan cloud infra, storage tiers, EDA→KiCad conversion
Why: - 策略调整:登录后才能访问的内容从"禁止"改为"纳入本项目范围", 同时明确凭据管理红线(合法账号、不入 git、云服务器隔离)。 解锁 u.lceda.cn 工程源 JSON,这是训练数据质量的关键升级。 - 计划中"存储"和"运行环境"一直模糊,现在按 Charles 提供的广州云服务器 + 存储分级演进(Gitea LFS → 对象存储)给出清晰路径。 - 打通 oshwhub (EasyEDA) 与 bshada/open-schematics (KiCad) 两个生态, 需要一个 EDA→KiCad 批转换脚本。先把它纳入 plan,等拿到工程源再实现。 What: - CLAUDE.md: 登录态条款从"不抓"改为"合法账号可抓",凭据管理写死在 ~/.secrets/,事件记 docs/secrets.md;合规红线同步更新 - plan.md §0.5: 新增 基础设施段(机器初始化 / 调度 / 登录态获取) - plan.md §1.4: 存储分级演进(< 50 GB 云盘,50-200 GB 评估,> 200 GB 迁对象存储) - plan.md §1.6: 登录态抓 u.lceda.cn 工程源 - plan.md §1.7: scripts/convert_to_kicad.py 批处理,候选 easyeda2kicad.py - plan.md 风险表: 加账号封禁 / 转换失败 / 云服务器单点故障三条 - docs/sources/oshwhub.md: u.lceda.cn 从"未开放"移到"需登录,已纳入范围" - README.md 数据源表: 加"登录态"列 + 运行环境说明 - log.md: 本次策略变更记录 未改:未新增 docs/infra.md(等机器到位 + 真实细节后再写),scripts/convert_to_kicad.py 尚未实现(等拿到工程源样本再实现)。 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
| 单项目体积中位数 | **9 MB**(mean 22 MB, p90 54 MB, max 204 MB) | §5.1 |
|
||||
| 全量存储估算 | **110 GB (median)** / 660 GB (p90 上界) | §5.1 推算 |
|
||||
| 反爬风险 | 低 | 列表 API 无 rate-limit 实测,建议 QPS ≤ 0.5 自律 |
|
||||
| 登录态要求 | 不需要 | 所有数据走匿名端点,见 §3 |
|
||||
| 登录态要求 | **匿名够用但登录更全** | 公开元数据 + 附件走匿名端点(见 §3);**工程源 JSON 需登录**(见 §3.5 & `plan.md` §1.6) |
|
||||
| 当前已入库 | 10 项目 / 52 附件 / 535 MB | 见仓库 `projects.md` |
|
||||
|
||||
**爬虫实现**:`crawlers/oshwhub/crawler.py`
|
||||
@@ -149,16 +149,18 @@ https://image.lceda.cn{attachments[].src}
|
||||
|
||||
**与项目本身无关**,爬虫应跳过。
|
||||
|
||||
### 3.5 未开放 / 需登录的端点
|
||||
### 3.5 需登录的端点(纳入本项目范围,待 Phase 1.6 实现)
|
||||
|
||||
| 端点 | 现象 | 说明 |
|
||||
| 端点 | 现象(匿名) | 登录后预期 |
|
||||
|---|---|---|
|
||||
| `/api/project/<uuid>` | `{"code":104001,"success":false}` | GET / POST / 带参数均失败;疑似需 session,作用不明 |
|
||||
| `u.lceda.cn/api/projects` | HTTP 401 "尚未登录" | EasyEDA 编辑器的工程源(真正的 schematic / PCB JSON),需登录态 |
|
||||
| `u.lceda.cn/api/project` | 302 重定向 | 同上 |
|
||||
| `/api/search/*` | 空响应 | 可能需要 CSRF token |
|
||||
| `/api/project/<uuid>` | `{"code":104001,"success":false}` | 返回项目完整元数据(待验证) |
|
||||
| `u.lceda.cn/api/projects` | HTTP 401 "尚未登录" | EasyEDA 编辑器的工程列表 |
|
||||
| `u.lceda.cn/api/project/<uuid>` | 302 重定向 | **工程源 JSON(schematic + PCB + 组件)— 训练数据最关键的一层** |
|
||||
| `/api/search/*` | 空响应 | 可能可用(待验证) |
|
||||
|
||||
**当前策略**:通过 SSR HTML 解析拿到所有公开字段,工程源 JSON(`u.lceda.cn`)留作 v0.2+ 评估是否值得引入登录态。
|
||||
**策略**(按 `CLAUDE.md` "登录态"条款):使用合法账号登录后抓,账号放云服务器 `~/.secrets/`,QPS ≤ 0.2 自律防封号,凭据不入 git。
|
||||
|
||||
实施见 `plan.md` §1.6;抓到的源 JSON 会走 `scripts/convert_to_kicad.py`(§1.7)统一到 KiCad 格式。
|
||||
|
||||
---
|
||||
|
||||
@@ -343,7 +345,7 @@ data/raw/oshwhub/<uuid>/
|
||||
| R1 | 站点加反爬(UA 指纹 / 验证码 / IP 限) | 放量中断 | 自律 QPS ≤ 0.5;若触发切换到 `lightpanda` 或真 Chrome + 降速 |
|
||||
| R2 | `license: "unknown"` 或非标准字符串 | 下游合规风险 | 严格 whitelist 过滤;`oshwhub_license_normalize` 待建 |
|
||||
| R3 | 单项目附件 > 100 MB | LFS 存储激增 | 目前 p90=54 MB 可接受;大于阈值记录 URL 不下载的开关待加 (`--max-file-size`) |
|
||||
| R4 | EasyEDA 源 JSON 不可得 | 训练数据缺了"真正的源" | v0.2+ 评估登录爬的 ROI |
|
||||
| R4 | EasyEDA 源 JSON 需登录 | 账号被封 → 工程源获取中断 | Phase 1.6 登录爬,QPS ≤ 0.2,账号隔离在云服务器 `~/.secrets/`,必要时多号轮询 |
|
||||
| R5 | 长描述 HTML 格式保真 | 文本语料噪声 | 当前只存简介;长文本提取(含图片/表格)留待 Phase 5 清洗 |
|
||||
| R6 | `grade` 字段含义未官方公开 | 质量筛选判据模糊 | 经验:grade=4 是精品徽章;其它档位抽样判据后续补 |
|
||||
| R7 | 增量更新策略 | 重复抓取浪费 | `updated_at` 对比 + LFS prune 策略未实现 |
|
||||
|
||||
Reference in New Issue
Block a user