打通 oshwhub origin=std 项目的工程源(schematic + PCB dataStr)抓取链路。原
plan.md §1.6 假设需要登录,实测 lceda.cn/api/documents/<doc>?uuid=<doc>&path=<doc>
对公开项目匿名可访问 —— 无需 cookie,无账号封禁风险。
调研:4 轮探测留痕在 data/state/std_probe[1-5]/(gitignored);翻 Std 编辑器
v6.5.51 的 main.min.js bundle 找到 ajaxDetail 端点;按 docType 区分两种
响应 shape(schematic 项目视图 vs PCB 文档视图)。
Crawler:
- make_source_client() 用浏览器 UA + lceda.cn/editor Referer,因为
oshwhub /api/project/<uuid> 端点拒绝 FacereDataset/0.1 UA(CLAUDE.md
UA 例外条款:目标站主动封自定义 UA + 公开静态资源)
- fetch_std_source(): 项目元 → version_documents → 逐文档 dataStr → 落
source/<doc>.json + source/manifest.json
- --with-source(爬新项目时一并抓源)/ --backfill-source(仅扫已有)
- QPS ≤ 0.2 (SLEEP_SOURCE = 5s) 自律
Schema: 加 source_format / source_path / source_documents / editor_version
(前 3 进 enum 锁定,便于后续 Pro / KiCad 源对齐)。
回填结果:10/10 成功,45 个文档,33.2 MB;schema validate 全通。
docTypes 主要是 1 (schematic) 与 3 (pcb);USB 电压电流表只有 PCB 文档(4 个:
主板+盖板+底板+面板,作者未上传原理图源)。
完整调研:docs/sources/easyeda_std_source.md。
92 lines
3.1 KiB
JSON
92 lines
3.1 KiB
JSON
{
|
|
"source": "oshwhub",
|
|
"source_url": "https://oshwhub.com/XACT/rt300-mkv",
|
|
"project_id": "91206ca73e96455f946bfcdd73e814fd",
|
|
"title": "RT300-MKV 250W 数控升降压桌面可调电源",
|
|
"description_short": "RT300-MKV-EXTREME 同步混合功率级自动范围升降压型数控可调电源",
|
|
"description_path": "description.md",
|
|
"author": {
|
|
"username": "XACT",
|
|
"display_name": "XACT",
|
|
"user_id": "e622ba5d959740ed90f4845a433def3a"
|
|
},
|
|
"license": "CC BY-NC-SA 4.0",
|
|
"tags": [],
|
|
"created_at": "2020-12-25T06:25:11.000Z",
|
|
"updated_at": "2025-12-19T01:07:55.000Z",
|
|
"published_at": "2024-08-01T01:03:58.000Z",
|
|
"crawled_at": "2026-04-23T11:26:39.736414+00:00",
|
|
"metrics": {
|
|
"likes": 867,
|
|
"stars": 1735,
|
|
"forks": 782,
|
|
"views": 185523,
|
|
"watch": 0,
|
|
"comments": 231
|
|
},
|
|
"cover": {
|
|
"url": "https://image.lceda.cn/pullimage/G0Yvb3LsUUqWspquWfqe3ray1cucrfmoPvXxT7H2.jpeg",
|
|
"path": "cover.jpeg"
|
|
},
|
|
"files": [
|
|
{
|
|
"name": "video_20240608_002422.mp4",
|
|
"url": "https://image.lceda.cn/oshwhub/project/attachments/1fdcbde12c2f4a6faf8c519be4e72984.mp4",
|
|
"original_id": "d76ad6faae0240518eb7640ba8fc02cc",
|
|
"ext": "mp4",
|
|
"mime": "video/mp4",
|
|
"size": 81553791,
|
|
"md5": "becffa3b615f415101f85d18b9bbfcf9",
|
|
"path": "files/video_20240608_002422.mp4",
|
|
"sha256": "06864530d9ef794927c8826b7e2e5bd7349587f9b6035e76606331bcba25fbd3"
|
|
},
|
|
{
|
|
"name": "RT300-MKV UserManual_24JUL25.pdf",
|
|
"url": "https://image.lceda.cn/oshwhub/project/attachments/a57ca3d5e7b54417aae014e2f12f17fa.pdf",
|
|
"original_id": "5dc0b16067344ed6bfc15471f2a3bd2a",
|
|
"ext": "pdf",
|
|
"mime": "application/pdf",
|
|
"size": 3320936,
|
|
"md5": "7f97a35fda72a0462ec8401d739ffd41",
|
|
"path": "files/RT300-MKV UserManual_24JUL25.pdf",
|
|
"sha256": "19eacef139ed672806a7bf492668b3f09e729d8c6eac6d2e5ed79aca8704685e"
|
|
}
|
|
],
|
|
"raw_fields": {
|
|
"path": "XACT/rt300-mkv",
|
|
"grade": 4,
|
|
"origin": "std",
|
|
"public": true,
|
|
"publish": true,
|
|
"skipped_files": []
|
|
},
|
|
"source_format": "easyeda-std",
|
|
"source_path": "source/",
|
|
"source_documents": [
|
|
{
|
|
"doc_uuid": "1005f679eec04096a34a5cdc0f9b43a5",
|
|
"docType": 1,
|
|
"master": "1609d12f8a43497280b3ac18851fa312",
|
|
"path": "source/1005f679eec04096a34a5cdc0f9b43a5.json",
|
|
"size": 467122,
|
|
"sha256": "82d692b3503602f17ff5ada0cf6625c04ce69ba366ab9cf223dea768061df0db"
|
|
},
|
|
{
|
|
"doc_uuid": "9a6e435234384c61997d251b91e64467",
|
|
"docType": 1,
|
|
"master": "f6bfbcb791ac42a09877f8351449b7ef",
|
|
"path": "source/9a6e435234384c61997d251b91e64467.json",
|
|
"size": 467122,
|
|
"sha256": "82d692b3503602f17ff5ada0cf6625c04ce69ba366ab9cf223dea768061df0db"
|
|
},
|
|
{
|
|
"doc_uuid": "db502fc86b9e40b1a481cdac0dd90685",
|
|
"docType": 3,
|
|
"master": "4067ac74bdc144718b856a045c415523",
|
|
"path": "source/db502fc86b9e40b1a481cdac0dd90685.json",
|
|
"size": 2491221,
|
|
"sha256": "4f9203b89d6bd72e1e22b0885573cd1330f3942338bc39a7af129730b2e077b4"
|
|
}
|
|
],
|
|
"editor_version": "6.5.23"
|
|
} |