内容采集与批量导入:AnQiCMS 如何从 ZIP、Excel 与其他网站自动聚合内容
AnQiCMS 提供了多种内容导入方式,包括 ZIP 压缩包批量导入、Excel 表格导入以及从其他网站自动采集内容。系统还开放了 /api/import/archive 接口,支持程序化导入并按标题查询是否已存在以避免重复。所有导入的内容都会进入待审核状态,需经过内容审核流程后才能正式发布。
ZIP 压缩包批量导入的操作步骤
当需要将大量离线文档快速迁移到 AnQiCMS 时,ZIP 压缩包是最便捷的方式。将文章以 HTML 或 Markdown 格式整理好,打包成 ZIP 文件后,在后台「内容管理」菜单中选择「批量导入」,上传 ZIP 文件即可。系统会自动解压并识别文件结构,将每篇文章转换为系统内的文档记录。
导入过程中,系统会保留原始文件的标题、正文与图片引用。如果 ZIP 包内包含文件夹结构,系统会尝试将其映射为分类或标签。导入完成后,可在「草稿」或「待发布」列表中查看结果,确认无误后再批量发布。
Excel 表格导入的格式要求
对于结构化数据(如产品列表、新闻摘要),Excel 表格导入更为高效。准备 Excel 文件时,第一行应作为表头,包含 title(标题)、content(正文)、keywords(关键词)、description(描述)等字段名。系统会根据列名自动匹配对应的数据库字段。
| 列名 | 说明 | 是否必填 |
|---|---|---|
| title | 文章标题 | 是 |
| content | 正文内容(支持 HTML) | 是 |
| keywords | 关键词,多个用逗号分隔 | 否 |
| description | 摘要描述,60-200 字 | 否 |
| category_id | 分类 ID | 否 |
| tags | 标签,多个用逗号分隔 | 否 |
上传 Excel 文件后,系统会预览前几行数据供确认。若格式无误,点击「开始导入」即可完成批量创建。导入失败的行会在日志中记录具体原因,例如缺少必填字段或编码错误。
从其他网站自动采集的配置
AnQiCMS 内置了内容采集功能,可定期从指定的其他网站抓取内容。在后台「内容采集」模块中,添加采集规则时需填写目标网站的 URL、选择器表达式(用于提取标题、正文、发布时间等字段)以及采集频率。系统会按照设定的时间间隔自动执行采集任务,并将新内容存入草稿箱。
采集规则支持 CSS 选择器与 XPath 两种语法。例如,要提取某新闻站的标题,可填写选择器 .article-title;要提取正文,可填写 #content。采集后的内容会保留原始格式,但建议人工审核后调整排版再发布。
需要注意的是,自动采集应遵守目标网站的 robots.txt 协议与使用条款,避免高频请求导致对方服务器负载过高。建议在采集规则中设置合理的间隔时间(如每小时一次),并在本地缓存已采集的 URL 以防止重复抓取。
/api/import/archive 接口的去重逻辑
对于需要通过程序批量导入的场景,AnQiCMS 提供了 /api/import/archive API 接口。该接口支持传入标题、正文、关键词等字段,并在入库前按标题查询是否已存在相同文档。若标题完全匹配,接口会返回「已存在」的状态码而不重复创建;若不匹配,则新建文档并返回其 ID。
这一去重机制适合与外部内容管理系统或爬虫工具对接。调用方只需在每次导入前向该接口发送请求,无需自行维护去重索引。接口的认证令牌需从环境变量 GEO_IMPORT_TOKEN 读取,不应硬编码在脚本中。
导入后的内容审核流程
无论是手动上传还是自动采集,导入的内容默认处于「草稿」或「待发布」状态,不会立即对外公开。管理员可在后台的「内容审核」列表中逐篇检查,确认内容合规、排版正确后,将其状态改为「正式文档」并发布。
审核时应重点关注以下几点:
- 标题与正文是否完整,有无乱码或缺失
- 图片链接是否有效,是否需要下载到本地存储
- 关键词与描述是否符合 SEO 规范
- 是否存在敏感词或违规内容(系统会自动进行敏感词过滤)
通过审核的内容可设置为立即发布或定时发布。若发现质量问题,可直接编辑修正或退回给导入来源重新处理。
常见问题
问:ZIP 导入时图片丢失怎么办?
答:如果 ZIP 包内的图片使用的是相对路径,系统会尝试将图片一并导入到媒体库。若图片是绝对 URL(指向外部站点),则需要手动下载或使用采集功能的图片本地化选项。
问:Excel 导入支持多少行数据?
答:单次导入的行数没有硬性限制,但建议控制在 1000 行以内以保证处理速度。如需导入更大量级的数据,可分批次上传多个 Excel 文件。
问:自动采集能否只抓取最新文章?
答:可以。在采集规则中可配置时间过滤器,例如只采集发布日期在最近 7 天内的文章。系统也会记录已采集的 URL,避免重复抓取同一篇文章。
问:API 导入时如何判断标题是否重复?
答:系统会对传入的 title 字段进行精确匹配查询。若数据库中已有完全相同的标题,接口会返回冲突提示。如需模糊匹配(例如忽略标点符号差异),需在调用方自行预处理标题后再发送请求。