浏览器自动化代理

一个基于MCP(模型控制程序)构建的强大浏览器自动化工具,结合了网页抓取能力和LLM驱动的智能,能够搜索Google、导航到网页并从各种网站(包括GitHub、Stack Overflow和文档站点)智能抓取内容。

  • by Raghu6798
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 raghu6798/browser_scrape_mcp

使用说明

🤖 浏览器自动化代理

一个强大的浏览器自动化工具,由MCP(模型控制程序)构建,将网络抓取功能与LLM驱动的智能相结合。该代理可以搜索谷歌,导航到网页,并智能地从各种网站(包括GitHub、Stack Overflow和文档网站)抓取内容。

🚀 特性

  • 🔍 谷歌搜索集成:查找和检索任何查询的顶级搜索结果
  • 🕸️ 智能网页抓取:针对不同网站类型量身定制的抓取策略:
    • 📂 GitHub 仓库
    • 💬 Stack Overflow问答
    • 📚 文档页面
    • 🌐 通用网站
  • 🧠 人工智能驱动的处理:使用Mistral AI来理解和处理抓取的内容
  • 🥷 隐身模式:实施浏览器指纹保护以避免检测
  • 💾 内容保存:自动保存抓取页面的屏幕截图和文本内容

🏗️ 建筑

该项目使用由MCP支持的客户端-服务器架构:

  • 🖥️ 服务器:处理浏览器自动化和网络抓取任务
  • 👤 客户端:使用Mistral AI和LangGraph提供AI界面
  • 📡 沟通:使用stdio进行客户端-服务器通信

⚙️ 需求

  • 🐍 Python 3.8+
  • 🎭 剧作家
  • 🧩 MCP(模型控制程序)
  • 🔑 Mistral AI API密钥

📥 安装

  1. 克隆存储库:
git clone https://github.com/yourusername/browser-automation-agent.git
cd browser-automation-agent
  1. 安装依赖项:
pip install -r requirements.txt
  1. 安装Playwright浏览器:
playwright install
  1. 创建一个 .env 文件在项目根目录中,并添加您的Mistral AI API密钥:
MISTRAL_API_KEY=your_api_key_here

📋 用法

运行服务器

python main.py

运行客户端

python client.py

示例交互

服务器和客户端都运行后:

  1. 出现提示时输入您的查询
  2. 代理人将:
    • 🔍 在谷歌上搜索相关结果
    • 🧭 导航到顶部结果
    • 📊 根据网站类型删除内容
    • 📸 将屏幕截图和内容保存到文件
    • 📤 返回已处理的信息

🛠️ 工具功能

get_top_google_url

🔍 搜索Google并返回给定查询的顶部结果URL。

browse_and_scrape

🌐 导航到URL并根据网站类型抓取内容。

scrape_github

📂 专注于从GitHub存储库中提取README内容和代码块。

scrape_stackoverflow

💬 从Stack Overflow页面中提取问题、答案、注释和代码块。

scrape_documentation

📚 针对提取文档内容和代码示例进行了优化。

scrape_generic

🌐 从通用网站中提取段落文本和代码块。

📁 文件结构

browser-automation-agent/
├── main.py            # MCP server implementation
├── client.py          # Mistral AI client implementation
├── requirements.txt   # Project dependencies
├── .env               # Environment variables (API keys)
└── README.md          # Project documentation

📤 输出文件

代理生成两种类型的带有时间戳的输出文件:

  • 📸 final_page_YYYYMMDD_HHMMSS.png:最终页面状态的屏幕截图
  • 📄 scraped_content_YYYYMMDD_HHMMSS.txt:从页面中提取的文本内容

⚙️ 定制

您可以在代码中修改以下参数:

  • 🖥️ 浏览器窗口大小:调整 width 和 height 在……里面 browse_and_scrape
  • 👻 无头模式:设置 headless=True 用于不可见的浏览器操作
  • 🔢 谷歌搜索结果数量:变化 num_results 在……里面 get_top_google_url

❓ 故障排除

  • 🔌 连接问题:确保服务器和客户端在单独的终端中运行
  • 🎭 剧作家错误:确保浏览器已安装 playwright install
  • 🔑 API密钥错误:验证您的Mistral API密钥在 .env 文件
  • 🛣️ 路径错误:更新路径至 main.py 在……里面 client.py 如有需要

📜 许可证

MIT许可证

🤝 贡献

欢迎投稿!请随时提交拉取请求。


内置于🧩 MCP,🎭 剧作家,以及🧠 米斯特拉尔AI