BrowserScrape 智能抓取
通过浏览器自动化工具启用智能网络抓取,该工具可以搜索谷歌、导航到网页,并从包括GitHub、Stack Overflow和文档网站在内的各种网站提取内容。
服务介绍
🤖 浏览器自动化代理
一个使用 MCP(Model Controlled Program)构建的强大浏览器自动化工具,结合了网络爬取功能与由 LLM 驱动的智能。该代理可以搜索 Google、导航到网页,并智能地从包括 GitHub、Stack Overflow 和文档站点等各种网站抓取内容。
🚀 特性
- 🔍 Google 搜索集成:为任何查询找到并检索顶级搜索结果
- 🕸️ 智能网络爬取:针对不同类型网站定制的爬取策略:
- 📂 GitHub 仓库
- 💬 Stack Overflow 问题和答案
- 📚 文档页面
- 🌐 通用网站
- 🧠 AI 驱动处理:使用 Mistral AI 理解和处理抓取的内容
- 🥷 隐身模式:实现浏览器指纹保护以避免被检测
- 💾 内容保存:自动保存从抓取页面中获取的截图和文本内容
🏗️ 架构
该项目使用由 MCP 支持的客户端-服务器架构:
- 🖥️ 服务器:处理浏览器自动化和网络爬取任务
- 👤 客户端:使用 Mistral AI 和 LangGraph 提供 AI 接口
- 📡 通信:使用 stdio 进行客户端-服务器通信
⚙️ 要求
- 🐍 Python 3.8+
- 🎭 Playwright
- 🧩 MCP (Model Controlled Program)
- 🔑 Mistral AI API 密钥
📥 安装
- 克隆仓库:
git clone https://github.com/yourusername/browser-automation-agent.git
cd browser-automation-agent
- 安装依赖项:
pip install -r requirements.txt
- 安装 Playwright 浏览器:
playwright install
- 在项目根目录下创建一个
.env文件,并添加您的 Mistral AI API 密钥:
MISTRAL_API_KEY=your_api_key_here
📋 使用
运行服务器
python main.py
运行客户端
python client.py
示例交互
当服务器和客户端都运行时:
- 根据提示输入您的查询
- 代理将:
- 🔍 在 Google 上搜索相关结果
- 🧭 导航至最高结果
- 📊 根据网站类型抓取内容
- 📸 将截图和内容保存到文件
- 📤 返回处理后的信息
🛠️ 工具函数
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:从页面提取的文本内容
⚙️ 自定义
您可以在代码中修改以下参数:
- 🖥️ 浏览器窗口大小:在
browse_and_scrape中调整width和height - 👻 无头模式:设置
headless=True以进行不可见的浏览器操作 - 🔢 Google 搜索结果数量:在
get_top_google_url中更改num_results
❓ 故障排除
- 🔌 连接问题:确保服务器和客户端分别在不同的终端中运行
- 🎭 Playwright 错误:请确保已通过
playwright install安装了浏览器 - 🔑 API 密钥错误:验证您的 Mistral API 密钥是否正确设置在
.env文件中 - 🛣️ 路径错误:如果需要,请更新
client.py中指向main.py的路径
📜 许可证
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
使用 🧩 MCP, 🎭 Playwright, 和 🧠 Mistral AI 构建