你是否曾经希望自己的AI助手能够快速浏览网页,并精确提取出你需要的内容?而不是让AI阅读整个冗长的HTML源代码?今天要介绍的开源项目BeautifulSoup4网页浏览器,正是为了解决这个问题而设计的。它通过封装BeautifulSoup4这个强大的HTML解析库,让AI能够像使用搜索引擎一样,精确地从网页中提取结构化内容。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | BeautifulSoup4 网页浏览器 |
| GitHub地址 | https://github.com/blazickjp/web-browser-mcp-server |
| 项目描述 | 使用BeautifulSoup4启用网页浏览功能 |
| 作者 | blazickjp |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | Python 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 或以上) |
| uv | Python包管理工具 | 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解析。这种设计使其在需要快速获取网页文本内容的场景下,比完整的浏览器自动化工具快得多。
这个项目的最大价值在于:
- 对开发者:展示了一个极简MCP服务器的实现,可以作为学习MCP开发的起点。
- 对使用者:提供了一个快速、轻量的网页内容提取工具,适合不需要JavaScript执行的场景。
- 对AI应用:让AI能够通过简单的CSS选择器,精确获取网页的特定部分。
需要注意的是:这个工具不适用于依赖JavaScript渲染的现代Web应用。如果你需要处理单页应用或执行页面脚本,请考虑Puppeteer或Playwright MCP服务器。
如果你需要快速提取静态网页的内容,并且希望保持AI对话的流畅和快速响应,BeautifulSoup4网页浏览器是一个绝佳的选择。
你可以通过修改源码来添加自定义请求头,项目是开源的。
我用来监控网站内容变化,每天定时提取关键部分。
对于大型网页,提取特定选择器比获取整个页面快多了。
CSS选择器支持嵌套吗?比如提取ul li a的href?
支持标准的CSS选择器语法,你说的这种完全可以。