同步家纺情报 v2 数据、59 个严格权威源、趋势图库、移动端交互、Google/Yandex 翻译门控及静态 SEO/GEO 构建。 补充面向 C# 研发的 README,明确当前无 LLM、多模态与生图模型,记录翻译请求参数、缓存与失败策略、数据处理边界、前端职责和无 GitHub Pages 部署流程。 新增按日期倒序维护的 CHANGELOG,记录影响、验证与代码/数据/dist 回滚方法。 验证:11 个 Python 契约测试、13 个 Node 前端测试通过;静态构建生成 1096 个 Sitemap URL。
3.0 KiB
3.0 KiB
C# 后端与 Node 前端交接
本仓库是可运行参考实现,不要求研发团队继续使用 Python 前端,也不要求用 C# 重写爬虫。推荐拆分边界如下。
C# 后端
适合负责:用户、企业、角色权限、订阅市场、任务分派、提醒、收藏、人工复核、审计日志和 API。不要把抓取器放进 Web 请求生命周期;通过计划任务或消息队列运行采集作业。
建议最小实体:
Source:来源、层级、语言、证据词、抓取策略、启停状态。FetchRun:开始/结束、HTTP 状态、内容指纹、证据、错误。IntelligenceItem:稳定 ID、栏目、事实字段、分析字段、适用地区、来源版本。ItemSource:一条聚合情报与多个来源的多对多关系。UserPreference:企业关注的国家、平台、品类和角色。UserTask:负责人、截止日、提醒、已处理/不相关状态。
数据库推荐 PostgreSQL;本地单机试运行可用 SQLite。正文去重建立 normalized_title + start_date + region 唯一候选键,内容指纹建立普通索引,外部 URL 使用规范化哈希索引。原始 HTML 只在需要审计时对象存储短期保留,不塞入主表。
API 可直接映射现有 JSON:
GET /api/intelligence/summary
GET /api/intelligence/items?section=&market=&platform=&from=&to=&cursor=
GET /api/intelligence/items/{id}
GET /api/platforms
GET /api/sources/{id}/runs
POST /api/tasks
PATCH /api/tasks/{id}
服务端必须再次校验翻译链接和外链协议,仅允许 http/https。用户偏好、任务和人工结论与自动抓取事实分表,避免下一轮增量更新覆盖人工数据。
Node 前端
可以迁移到 Next.js 或 React,但不必重写信息架构。保留七个业务入口和趋势四个子类,默认趋势页进入灵感图库。推荐:
- TypeScript 定义与
docs/DATA-CONTRACT.md一致的模型。 - TanStack Query 或框架原生数据缓存处理分页;Zustand 只存筛选、主题和用户偏好,不存整库情报。
- 服务端渲染栏目和详情,客户端只增强筛选、收藏、任务和翻译门控。
- 图片使用源站或授权地址时保留来源;没有图时继续使用 HTML 文字海报,不生成无来源的假图片。
- 触控目标至少 44px,业务正文至少 16px,移动端七分类首屏可发现。
迁移顺序
- 先冻结 JSON v2 契约,将当前两份发布 JSON 导入新 API。
- Node 前端改为读 API,逐页对比旧静态站;此时抓取仍由 Python 定时任务运行。
- C# 增加用户偏好、任务和权限,不改自动事实字段。
- 如确有团队维护收益,再逐个把稳定解析器迁移到 .NET;每迁移一个源,用相同 URL、证据词和快照做双跑比对。
- 最后将 SEO canonical 切向新域名,并保留旧 URL 的 301 映射。
不要一开始重写 57 个源。先把现有采集器当独立批处理服务,C# 和 Node 围绕稳定 JSON 契约开发,风险和交付周期最低。