Aucune description

kinglee 041c79d4f7 fix: 修复AI工具调用解析错误 - tc.index改为tc.get('index') il y a 2 jours
.wolf 3d25c216dd debug: 添加AI工具调用调试日志和诊断脚本 il y a 2 jours
app 041c79d4f7 fix: 修复AI工具调用解析错误 - tc.index改为tc.get('index') il y a 2 jours
backup 513a3a3670 fix: 导出脚本使用 SERIAL PRIMARY KEY 替代 integer+PK,修复 SSO 登录插入新用户时 id 为 NULL 的问题 il y a 6 jours
migrations b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
.dockerignore f7f5093b3a feat: 添加 Docker 部署支持(Dockerfile + docker-compose 编排) il y a 1 semaine
.env 6bddb23064 feat: 添加 PostgreSQL 容器到 docker-compose,弃用远程 PG,新增数据备份和迁移脚本 il y a 6 jours
.gitattributes 605eafe32e 初始化项目 il y a 2 semaines
.gitignore d9bfc97896 chore: 初始化 maas-data-collect 分支基础环境 il y a 1 semaine
.python-version d9bfc97896 chore: 初始化 maas-data-collect 分支基础环境 il y a 1 semaine
CLAUDE.md 45f692adc3 feat: 添加数据库迁移脚本,SpiderResult.link 字段从 String(500) 改为 Text il y a 6 jours
DEPLOY.md b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
Dockerfile be0ebcf07f fix: Dockerfile 预装 Playwright 依赖,去掉 install-deps 解决构建空间不足 il y a 1 semaine
README.md 605eafe32e 初始化项目 il y a 2 semaines
create_admin.py d9bfc97896 chore: 初始化 maas-data-collect 分支基础环境 il y a 1 semaine
diagnose_tool_call.py 3d25c216dd debug: 添加AI工具调用调试日志和诊断脚本 il y a 2 jours
docker-compose.dev.yml 6bddb23064 feat: 添加 PostgreSQL 容器到 docker-compose,弃用远程 PG,新增数据备份和迁移脚本 il y a 6 jours
docker-compose.yml c00598cb81 fix: PG 容器宿主机端口改为 5433,避免与已有服务冲突 il y a 6 jours
dump_pg_to_sql.py 513a3a3670 fix: 导出脚本使用 SERIAL PRIMARY KEY 替代 integer+PK,修复 SSO 登录插入新用户时 id 为 NULL 的问题 il y a 6 jours
entrypoint.sh 33043893b5 chore: entrypoint添加is_default列迁移脚本 il y a 2 jours
fix_column.py d9bfc97896 chore: 初始化 maas-data-collect 分支基础环境 il y a 1 semaine
fix_pg_sequences.py 28013b8703 chore: 添加 OpenWolf 上下文管理及 PG 序列修复脚本 il y a 2 jours
init_db.py b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
migrate.sql b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
migrate_add_is_default.py af55a3fa2e feat: AI模型管理增加默认模型功能,分析报告支持模型切换 il y a 2 jours
migrate_db.py b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
migrate_link_to_text.py 45f692adc3 feat: 添加数据库迁移脚本,SpiderResult.link 字段从 String(500) 改为 Text il y a 6 jours
migrate_sqlite_to_pg.py 6bddb23064 feat: 添加 PostgreSQL 容器到 docker-compose,弃用远程 PG,新增数据备份和迁移脚本 il y a 6 jours
pyproject.toml b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
requirements-docker-clean.txt b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
requirements-docker.txt b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
run.py b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine
test_db.py d9bfc97896 chore: 初始化 maas-data-collect 分支基础环境 il y a 1 semaine
uv.lock b4b030d78b 修改SSO和样本中心对接 il y a 1 semaine

README.md

AI LiaoWang Web App

这是一个基于 Python Flask 的网络爬虫管理与数据采集系统。支持自定义脚本爬虫和基于配置的通用爬虫,集成了爬虫源管理、任务采集管理等功能。

功能特性

  • 爬虫源管理
    • 支持添加、编辑、删除爬虫源。
    • 脚本爬虫:调用本地 Python 脚本(app/spider/ 目录下)进行采集。
    • 通用爬虫:通过界面配置 URL、请求方法、Headers、CSS 选择器等参数,无需编写代码即可实现采集。
  • 采集管理
    • 创建采集任务,指定关键词和爬虫源。
    • 后台多线程执行采集任务。
    • 查看采集结果(标题、摘要、来源、链接、封面图)。
  • 用户认证:简单的登录/注销功能。

环境要求

  • Python 3.8+
  • SQLite (默认内置)

安装步骤

  1. 克隆项目或下载源码

  2. 创建虚拟环境

    python -m venv venv
    
  3. 激活虚拟环境

    • Windows: venv\Scripts\activate
    • Linux/Mac: source venv/bin/activate
  4. 安装依赖

    pip install -r requirements.txt
    

数据库初始化

首次运行前,需要初始化数据库并创建管理员账号。

python init_db.py

该命令会:

  • 创建 app/app.db SQLite 数据库文件。
  • 创建默认管理员账号:admin / admin
  • 初始化默认爬虫源(如百度搜索脚本)。

启动应用

python run.py

启动后,访问浏览器:http://localhost:5000

使用说明

1. 登录

使用默认账号 admin,密码 admin 登录。

2. 爬虫源管理 (Spider Management)

进入“爬虫源管理”页面,可以查看现有爬虫或点击“新增”。

新增通用爬虫示例(百度新闻)

  • 名称: 百度新闻
  • 代码标识: baidu_news
  • 类型: 通用配置 (Generic Engine)
  • URL: https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&rsv_dl=ns_pc&pn=0
  • 请求方法: GET
  • 搜索参数名: word
  • Headers: 支持 JSON 格式或直接粘贴浏览器 Headers (Key: Value 格式)。
  • Selectors (JSON):

    {
        "list": ".result-op",
        "title": "h3 a",
        "link": {"selector": "h3 a", "attr": "href"},
        "abstract": ".c-color-text",
        "source": ".source-link_Ft1ov .c-color-gray",
        "cover": {"selector": ".c-img img", "attr": "src"}
    }
    

3. 采集管理 (Collection Management)

  • 进入“采集管理”页面。
  • 点击“新建采集任务”。
  • 输入“采集关键词” (例如: "人工智能")。
  • 选择刚才创建的“百度新闻”爬虫源。
  • 点击“开始采集”。
  • 任务完成后,点击任务卡片查看详细结果。

项目结构

ai-LiaoWangweb-app/
├── app/
│   ├── routes/             # 路由模块 (Main, AI, Source, Collection)
│   ├── spider/             # 爬虫核心逻辑
│   │   ├── engine.py       # 通用爬虫引擎
│   │   ├── baidusearch.py  # 百度搜索专用脚本
│   │   └── config.json     # 爬虫配置文件
│   ├── templates/          # HTML 模板
│   ├── static/             # 静态文件 (CSS, JS, ECharts)
│   ├── models.py           # 数据库模型
│   ├── __init__.py         # 应用工厂
│   └── config.py           # 应用配置
├── venv/                   # 虚拟环境
├── init_db.py              # 数据库初始化脚本
├── run.py                  # 启动脚本
├── requirements.txt        # 项目依赖
└── README.md               # 说明文档

开发与维护

  • 添加新的脚本爬虫:

    1. app/spider/ 下创建新的 .py 文件。
    2. 实现 search(keyword, limit) 函数。
    3. 在“爬虫源管理”中添加类型为“自定义脚本”的源,代码标识填写文件名(不含 .py)。
  • 测试:

    • 建议编写独立的测试脚本调用 GenericSpiderEngine 或脚本函数进行测试,参考之前的 test_generic_baidu_news.py (已移除)。

常见问题

  • lxml 错误: 如果遇到 Couldn't find a tree builder with the features you requested: lxml,请确保安装了 lxml (pip install lxml)。系统已内置回退机制,如果没有 lxml 会尝试使用 html.parser