你是否曾经希望自己的AI助手能够快速浏览网页,并精确提取出你需要的内容?而不是让AI阅读整个冗长的HTML源代码?今天要介绍的开源项目BeautifulSoup4网页浏览器,正是为了解决这个问题而设计的。它通过封装BeautifulSoup4这个强大的HTML解析库,让AI能够像使用搜索引擎一样,精确地从网页中提取结构化内容。

项目基本信息

信息项详情
项目名称BeautifulSoup4 网页浏览器
GitHub地址https://github.com/blazickjp/web-browser-mcp-server
项目描述使用BeautifulSoup4启用网页浏览功能
作者blazickjp
开源协议MIT License
开源状态公开状态
LanguagesPython 100.0%
支持平台Windows / macOS / Linux
最后更新2026-04-23

一、项目介绍

BeautifulSoup4网页浏览器是一个基于Python的MCP服务器,它利用BeautifulSoup4库为AI模型提供网页浏览和内容提取能力。与传统的浏览器自动化工具不同,它不执行JavaScript,也不渲染页面,而是直接获取HTML源代码,然后用BeautifulSoup4进行解析和提取。

这个项目的核心理念是“快”和“准”。它不做多余的事情:不加载图片、不执行脚本、不渲染样式。它只做一件事:获取网页的HTML,然后根据你指定的CSS选择器,精确提取出你需要的内容。整个过程是异步的,性能非常出色。

服务器只提供了一个工具:browse_webpage。它接受一个URL和一组可选的CSS选择器,返回网页的元数据(标题、链接等)以及你指定选择器匹配的内容。

二、核心优势

极速性能

由于不执行JavaScript、不加载图片和样式,网页获取和解析的速度非常快。根据作者的描述,它是“闪电般快速”的。

精确提取

通过CSS选择器,你可以精确指定需要提取的内容。例如,只提取文章的主体内容,而忽略侧边栏、广告和页脚。

丰富的元数据

即使不指定选择器,服务器也会返回网页的基本信息,包括标题、所有链接等,帮助AI快速了解网页结构。

轻量级

整个项目基于Python和BeautifulSoup4,依赖少,资源占用低。适合在资源受限的环境中运行。

跨平台

只要是能运行Python的地方,就能运行这个服务器。

三、适用场景

开发者学习和参考

如果你想学习如何将BeautifulSoup4封装成MCP服务器,或者想了解网页内容提取的基本原理,这是一个很好的入门项目。

快速内容提取

当你只需要网页中的文本内容(如文章正文、博客帖子),而不需要执行JavaScript时,这个工具比完整的浏览器自动化工具快得多。

数据采集预处理

在数据采集管道中,可以用这个工具快速获取网页的结构化内容,然后用其他工具处理动态部分。

日常工作和效率提升

与Claude Desktop等客户端结合后,你可以用自然语言快速获取网页内容:

  • “帮我提取这篇文章的标题和正文”
  • “获取这个页面的所有链接”
  • “从这篇博客中提取所有h2标题”

四、安装教程

系统要求

工具用途下载/安装方式
Python运行环境[https://python.org/] (版本要求:3.8 或以上)
uvPython包管理工具pip install uv
Git下载项目代码(开发模式需要)[https://git-scm.com/]

安装步骤

BeautifulSoup4网页浏览器提供了两种安装方式:通过Smithery自动安装,或手动安装。

方式一:通过Smithery安装(最简单)

如果你使用Claude Desktop,可以通过Smithery一键安装:

npx -y @smithery/cli install web-browser-mcp-server --client claude

这会自动配置好Claude Desktop的MCP设置。

方式二:手动安装

第一步:使用uv工具安装

uv tool install web-browser-mcp-server

第二步:配置MCP客户端

对于Claude Desktop,找到配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

添加以下配置:

{
    "mcpServers": {
        "web-browser-mcp-server": {
            "command": "uv",
            "args": [
                "tool",
                "run",
                "web-browser-mcp-server"
            ],
            "env": {
                "REQUEST_TIMEOUT": "30"
            }
        }
    }
}

第三步:重启Claude Desktop

保存配置文件后,完全退出并重启Claude Desktop。

方式三:开发模式安装(适合贡献代码)

git clone https://github.com/blazickjp/web-browser-mcp-server.git
cd web-browser-mcp-server
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv pip install -e ".[test]"

然后在MCP客户端配置中指定本地路径:

{
    "mcpServers": {
        "web-browser-mcp-server": {
            "command": "uv",
            "args": [
                "--directory",
                "/你的绝对路径/web-browser-mcp-server",
                "run",
                "web-browser-mcp-server"
            ],
            "env": {
                "REQUEST_TIMEOUT": "30"
            }
        }
    }
}

五、使用示例

配置完成后,你就可以在MCP客户端中使用自然语言来调用browse_webpage工具了。

示例1:基础网页获取

用户指令:“帮我获取https://example.com的内容”

AI会调用browse_webpage工具,参数为{"url": "https://example.com"}

返回结果包含:

  • 网页标题
  • 所有链接
  • 完整的HTML结构(以文本形式)

示例2:使用CSS选择器提取特定内容

用户指令:“从https://news.ycombinator.com提取所有新闻标题和链接”

AI会调用:

{
    "url": "https://news.ycombinator.com",
    "selectors": {
        "titles": "span.titleline a",
        "scores": "span.score"
    }
}

返回结果中会包含匹配这些选择器的内容。

示例3:提取文章正文

用户指令:“提取这篇博客文章的主要内容和所有子标题”

{
    "url": "https://example.com/blog-post",
    "selectors": {
        "main_content": "article.post-content",
        "headings": "article.post-content h2, article.post-content h3"
    }
}

示例4:配置超时时间

对于响应较慢的网站,可以通过环境变量增加超时时间:

{
    "mcpServers": {
        "web-browser-mcp-server": {
            "command": "uv",
            "args": ["tool", "run", "web-browser-mcp-server"],
            "env": {
                "REQUEST_TIMEOUT": "60"
            }
        }
    }
}

示例5:批量提取

虽然服务器本身只接受单个URL,但你可以通过AI客户端实现批量操作。例如:

“请依次获取以下3个页面的标题:url1、url2、url3”

AI会循环调用browse_webpage工具3次,每次传入不同的URL。

六、常见问题

问题1:安装时提示“uv: command not found”

解决方案:请先安装uv。运行pip install uv,或者访问uv的官方文档进行安装。

问题2:Claude Desktop中看不到web-browser-mcp-server工具

解决方案:

  • 确认配置文件路径正确,JSON格式无误
  • 检查终端中是否有uv工具(运行uv --version
  • 完全退出并重启Claude Desktop(不仅仅是关闭窗口)

问题3:获取某些网站时返回内容不完整

解决方案:这个工具只获取静态HTML,不执行JavaScript。对于依赖JavaScript渲染的单页应用,这个工具无法获取完整内容。请考虑使用Puppeteer或Playwright等浏览器自动化工具。

问题4:CSS选择器不生效

解决方案:

  • 确认选择器语法正确。可以在浏览器开发者工具中测试选择器。
  • 某些内容可能是通过JavaScript动态生成的,这种情况下BeautifulSoup4无法提取。
  • 注意选择器的大小写。HTML属性通常是小写的。

问题5:请求超时

解决方案:对于响应较慢的网站,可以在配置中增加REQUEST_TIMEOUT环境变量的值。例如设置为60秒。

七、总结

BeautifulSoup4网页浏览器是一个专注于“快速内容提取”的MCP服务器。它不做完整的浏览器渲染,只做一件事:获取HTML并用BeautifulSoup4解析。这种设计使其在需要快速获取网页文本内容的场景下,比完整的浏览器自动化工具快得多。

这个项目的最大价值在于:

  1. 对开发者:展示了一个极简MCP服务器的实现,可以作为学习MCP开发的起点。
  2. 对使用者:提供了一个快速、轻量的网页内容提取工具,适合不需要JavaScript执行的场景。
  3. 对AI应用:让AI能够通过简单的CSS选择器,精确获取网页的特定部分。

需要注意的是:这个工具不适用于依赖JavaScript渲染的现代Web应用。如果你需要处理单页应用或执行页面脚本,请考虑Puppeteer或Playwright MCP服务器。

如果你需要快速提取静态网页的内容,并且希望保持AI对话的流畅和快速响应,BeautifulSoup4网页浏览器是一个绝佳的选择。

标签: 浏览器自动化

已有 34 条评论

    1. EliElse EliElse

      能,它使用requests库,会自动处理重定向。

    2. FayFetch FayFetch

      总的来说,这是一个简单但实用的工具,推荐给需要快速提取网页内容的人。

    3. GavinGrep GavinGrep

      期待作者能增加批量URL处理功能,减少AI的重复调用。

    4. HollyHash HollyHash

      看完教程5分钟就配好了,第一次体验MCP这么顺利。