Files
ai_import_quary/README.md
2026-02-05 21:34:39 +08:00

4.4 KiB
Raw Permalink Blame History

AI 关键词导入工具

项目简介

本项目是一个从 Excel 文件批量导入关键词到 MySQL 数据库的工具,支持自动关联科室信息和作者信息。

功能特性

  • 从 Excel 文件读取关键词和科室信息
  • 自动去重,避免重复导入
  • 支持批量导入或测试模式(导入指定条数)
  • 自动查询科室 ID 和对应的作者信息
  • 导入完成后自动清理已处理的 Excel 文件
  • 详细的日志输出,便于追踪导入过程

环境要求

  • Python 3.7+
  • MySQL 数据库

安装依赖

pip install -r requirements.txt

使用方法

1. 准备 Excel 文件

在项目根目录下创建 query_upload 文件夹,并将 Excel 文件放入该文件夹中。

Excel 文件需要包含以下列:

  • query 列:关键词列(必需)
  • 科室 列:科室信息列(可选,如不存在则不关联科室)

2. 配置数据库

编辑 database_config.py 文件,修改数据库连接配置:

DB_CONFIG = {
    'host': 'your_host',
    'user': 'your_user',
    'password': 'your_password',
    'database': 'your_database',
    'charset': 'utf8mb4'
}

3. 运行导入工具

python import_keywords.py

4. 命令行参数(可选)

python import_keywords.py --host 127.0.0.1 --port 3306 --user root --password your_password --database ai_article

可用参数:

  • --host: 数据库主机(默认使用配置文件中的值)
  • --port: 数据库端口(默认 3306
  • --user: 数据库用户名(默认使用配置文件中的值)
  • --password: 数据库密码(默认使用配置文件中的值)
  • --database: 数据库名(默认使用配置文件中的值)
  • --batch-size: 日志批次大小(默认 1
  • --sleep: 每条记录间隔时间秒数(默认 0.1
  • --query-column: Excel 中的关键词列名(默认 'query'
  • --dept-column: Excel 中的科室列名(默认 '科室'
  • --seed-id: 种子 ID默认 9999
  • --seed-name: 种子名称(默认 '手动提交'

数据库表结构

baidu_keyword 表(目标表)

导入的数据会插入到 baidu_keyword 表,字段包括:

  • keyword: 关键词
  • seed_id: 种子 ID
  • seed_name: 种子名称
  • crawled: 是否已爬取
  • department: 科室名称
  • department_id: 科室 ID
  • query_status: 查询状态(固定为 'manual_review'
  • author_id: 作者 ID
  • author_name: 作者名称

ai_departments 表(科室表)

需要预先存在,用于查询科室 ID

  • id: 科室 ID
  • department_name: 科室名称

ai_authors 表(作者表)

需要预先存在,用于查询作者信息:

  • id: 作者 ID
  • author_name: 作者名称
  • department_id: 所属科室 ID
  • status: 状态(需为 'active'
  • daily_post_max: 每日最大发布数(需大于 0

工作流程

  1. 检测 query_upload 文件夹中的 Excel 文件
  2. 如果有多个文件,提示用户选择
  3. 读取 Excel 文件中的关键词和科室信息
  4. 提示用户选择全部导入或测试模式
  5. 显示前 10 条数据预览
  6. 确认后开始导入:
    • 查询关键词是否已存在
    • 如果存在则跳过
    • 如果不存在,根据科室名称查询科室 ID
    • 根据科室 ID 查询符合条件的作者信息
    • 插入数据到 baidu_keyword
  7. 导入成功后自动清理 query_upload 文件夹中的 Excel 文件

注意事项

  1. 确保 ai_departments 表中已存在 Excel 中提到的所有科室
  2. 确保每个科室在 ai_authors 表中至少有一个状态为 'active' 且 daily_post_max > 0 的作者
  3. 如果科室不存在,导入过程会中断并报错
  4. 导入成功后,原始 Excel 文件会被自动删除
  5. 如果导入失败Excel 文件会保留以便排查问题

项目结构

ai_import_quary/
├── database_config.py      # 数据库配置和管理模块
├── import_keywords.py      # 关键词导入主程序
├── requirements.txt        # Python 依赖包
├── README.md              # 项目说明文档
└── query_upload/          # Excel 文件存放目录(需手动创建)

日志说明

程序运行过程中会输出详细的日志信息:

  • INFO 级别:一般信息和进度提示
  • DEBUG 级别:详细的调试信息
  • WARNING 级别:警告信息
  • ERROR 级别:错误信息

许可证

本项目仅供内部使用。