智能网页自动化工具

一个结合Playwright浏览器自动化、FastAPI REST API和Google Gemini AI的智能网页抓取工具,支持自然语言驱动的搜索和自动化任务。

  • by priyanka-bh2
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 priyanka-bh2/playwright-mcp-agent

使用说明

带有AI和MCP的剧作家自动化API

一个复杂的网络自动化项目,将Playwright浏览器自动化与FastAPI REST API和Google Gemini AI相结合,使用模型上下文协议(MCP)实现智能、自然语言驱动的网络抓取。

概述

该项目实现了产品搜索的自动化 要报废的书 有三种强大的方法:

  • 核心自动化:使用Playwright进行传统的基于关键字的产品搜索
  • REST API:具有同步和异步端点的FastAPI包装器
  • AI驱动的MCP代理:Google Gemini AI使用模型上下文协议处理的自然语言查询

特性

核心自动化

  • 智能关键字匹配(精确和部分)
  • 全面的产品数据提取(名称、价格、评级、可用性、URL)
  • 无头和有头浏览器模式
  • 强大的错误处理和详细的日志记录

REST API

  • 同步搜索:即时结果通过 /api/search
  • 异步搜索:通过后台任务处理 /api/search/async
  • MCP AI搜索:通过自然语言查询 /api/mcp/search
  • 交互式Swagger UI文档位于 /docs
  • 健康检查终点位于 /health
  • 异步操作的任务管理端点

AI和MCP集成

  • 简单的英语目标解释(例如,“找到最便宜的书”)
  • 使用Google Gemini AI生成动态执行计划
  • 通过MCP进行实时页面可访问性树分析
  • 全面的查询支持:
    • 价格查询:最便宜,最贵,低于X英镑,介于X英镑和Y英镑之间
    • 评级查询:1-5星书籍,最佳/最差评级
    • 可用性查询:有货,缺货
    • 统计:平均价格、总计数、排序
    • 计数:总共有多少本书

项目结构

项目/

├── core/
│ ├── ai_agent.py#基于MCP的人工智能代理
│ ├── product_searcher.py#核心编剧自动化
├── api/
│ └── main.py#FastAPI REST API
├── requirements.txt#Python依赖项
├── .env#环境配置

需求

依赖项

剧作家==1.48.0
fastapi==0.115.0
标准值=0.32.0
媒染剂==2.9.2
python dotenv==1.0.1
谷歌生成人工智能==0.8.3
httpx==0.27.2
pytest==8.3.3
pytest剧作家==0.5.2

环境变量

创建一个 .env 文件:
环境=开发
调试=真
LOG_LEVEL=信息
DEFAULT_HEADLESS=真
默认超时=30000
GEMINI_API_KEY=您的_API_KEY_here

安装

1.克隆和设置

克隆 https://github.com/priyanka-bh2/playwright-mcp-agent
cd剧作家mcp经纪人

2.安装Python依赖项

pip安装-r要求.txt

3.安装Playwright浏览器

剧作家安装铬

4.配置环境

创建一个 .env 使用Google Gemini API密钥文件:
echo“GEMINI_API_KEY=your_KEY_here”>.env

用法

选项1:核心自动化脚本

python核心/产品seecher.py

测试搜索的交互模式:
输入搜索关键字:Light
✓ 产品:阁楼里的灯
💰 价格:51.77英镑
⭐ 评级:三星

选项2:REST API

python-api/main.py或uvicorn-api.main:app-reload 访问API:

  • Swagger用户界面: http://localhost:8000/docs
  • 健康检查: http://localhost:8000/health

同步搜索

卷曲-X POST”http://localhost:8000/api/search"
-H“内容类型:应用程序/json”
-d'{“product_name”:“Light”,“headless”:true}'

异步搜索

提交任务 卷曲-X POST”http://localhost:8000/api/search/async"
-H“内容类型:应用程序/json”
-d'{“product_name”:“Sharp”,“headless”:true}'

检查状态
卷曲”http://localhost:8000/api/task/{task_id}“

选项3:AI驱动的MCP代理

python核心/ai_agent.py
交互式人工智能代理:
你的目标:找到最便宜的书
🤖 AI:生成执行计划。..
✓ 生成4个步骤
🚀 正在启动浏览器。..
✓ 导航到https://books.toscrape.com/
✓ 已提取20项
✓ 应用过滤器:最便宜

通过REST API

卷曲-X POST”http://localhost:8000/api/mcp/search"
-H“内容类型:应用程序/json”
-d'{“user_goal”:“查找所有五星级书籍”}

API终点

端点 方法 描述
/ 获取 API信息和功能
/health GET 健康检查和服务状态
/docs GET 交互式Swagger用户界面
/api/search POST 同步产品搜索
/api/search/async POST 异步产品搜索
/api/task/{task_id} GET 获取异步任务状态
/api/tasks GET 列出所有任务
/api/tasks DELETE 清除所有任务
/api/mcp/search POST 人工智能驱动的自然语言搜索

AI查询示例

MCP AI代理能够理解自然语言:

“找到最便宜的书”
“给我看看所有五星级的书”
“哪些书的价格低于30英镑?”
“按评级列出书籍”
“有多少本书在库存?”
“最贵的书是什么?”
“给我看看20英镑到40英镑之间的书”
“获取所有书籍的平均价格”

建筑

核心产品搜索器

  1. 启动Playwright浏览器
  2. 导航到要报废的书籍
  3. 使用关键字匹配搜索产品
  4. 提取全面的产品详细信息
  5. 返回结构化数据

MCP AI代理

  1. 用户提供简单的英语目标
  2. Google Gemini生成执行计划
  3. MCP提供实时页面上下文
  4. 剧作家执行自动化步骤
  5. AI过滤并分析结果
  6. 返回自然语言答案

FastAPI REST API

  1. 接收HTTP请求
  2. 使用Pydantic验证请求数据
  3. 在流程池中执行自动化
  4. 返回结构化JSON响应
  5. 管理异步任务生命周期

测试

手动测试

测试核心自动化
python核心/产品seecher.py

测试API
python-api/main.py

访问http://localhost:8000/docs
测试AI代理
python核心/ai_agent.py

API卷曲试验

基本搜索
卷曲-X POST”http://localhost:8000/api/search"
-H“内容类型:应用程序/json”
-d'{“product_name”:“Light”,“headless”:true}'

AI搜索
卷曲-X POST”http://localhost:8000/api/mcp/search"
-H“内容类型:应用程序/json”
-d'{“user_goal”:“查找最便宜的书”}'

错误处理

该项目包括全面的错误处理:

  • 具有可配置超时的网络超时处理
  • 浏览器崩溃恢复
  • 搜索查询验证无效
  • 服务不可用时性能下降
  • 详细的错误消息和日志记录

配置

通过环境变量自定义行为:

  • ENVIRONMENT:开发/生产
  • DEBUG:启用调试日志记录
  • LOG_LEVEL:信息/调试/警告/错误
  • DEFAULT_HEADLESS:无头运行浏览器
  • DEFAULT_TIMEOUT:浏览器操作超时(ms)
  • GEMINI_API_KEY:人工智能功能的Google Gemini API密钥

局限性

  • 目标网站:仅限图书报废演示网站
  • AI功能需要有效的Google Gemini API密钥
  • MCP代理需要互联网连接
  • 某些系统的无头模式限制