Playwright Fetch

Playwright Fetch

🚀 Playwright Fetch MCP Server

Playwright Fetch MCP Server 是一个基于 Model Context Protocol 的服务器,借助 Playwright 实现浏览器自动化,为大语言模型(LLMs)提供网页内容抓取能力。它能够帮助 LLMs 从网页中获取并处理 JavaScript 渲染后的内容,还能将 HTML 转换为便于使用的 Markdown 格式。

🚀 快速开始

本项目借助 Playwright 实现浏览器自动化,可抓取网页中的 JavaScript 渲染内容,并将其转换为 Markdown 格式。以下是使用前的准备步骤:

  1. 确保安装 Python 3.13.2 或更新版本。
  2. 安装 uv 包管理器。
  3. 安装 Playwright 浏览器。

✨ 主要特性

  • 浏览器自动化:利用 Playwright 渲染支持完整 JavaScript 的网页。
  • 内容提取:自动识别并提取网页的主要内容区域。
  • Markdown 转换:将 HTML 转换为简洁易读的 Markdown 格式。
  • 分页支持:通过分页处理大量内容。
  • 遵守 robots.txt:在自动抓取时遵循 robots.txt 指令。
  • 代理支持:允许通过代理服务器路由请求。
  • 支持 Docker:可通过 Docker HubGitHub Container Registry 获取预构建的 Docker 镜像。

📦 安装指南

1. 使用 uv 安装(推荐)

uv pip install git+https://github.com/ThreatFlux/playwright-fetch.git
# 安装 Playwright 浏览器
uv pip exec playwright install

或者,克隆仓库并安装:

git clone https://github.com/ThreatFlux/playwright-fetch.git
cd playwright-fetch
uv pip install -e .
# 安装 Playwright 浏览器
uv pip exec playwright install

2. 使用 Docker

可以从 Docker Hub 或 GitHub Container Registry 获取预构建的 Docker 镜像:

# 从 Docker Hub 获取
docker pull threatflux/playwright-fetch:latest

# 从 GitHub Container Registry 获取
docker pull ghcr.io/threatflux/playwright-fetch:latest

也可以自行构建:

docker build -t threatflux/playwright-fetch .

📚 详细文档

可用工具

  • playwright-fetch - 使用 Playwright 浏览器自动化抓取 URL 并将内容提取为 Markdown 格式。
    • url(字符串,必需):要抓取的 URL。
    • max_length(整数,可选):返回的最大字符数(默认:5000)。
    • start_index(整数,可选):从该字符索引开始提取内容(默认:0)。
    • raw(布尔值,可选):获取未经 Markdown 转换的原始内容(默认:false)。
    • wait_for_js(布尔值,可选):等待 JavaScript 执行(默认:true)。

提示信息

  • playwright-fetch
    • 使用 Playwright 抓取 URL 并将内容提取为 Markdown 格式。
    • 参数:
      • url(字符串,必需):要抓取的 URL。

配置说明

为 Claude.app 配置

在 Claude 设置中添加以下内容:

使用 uvx
"mcpServers": {
"playwright-fetch": {
"command": "uvx",
"args": ["mcp-server-playwright-fetch"]
}
}
使用 Docker
"mcpServers": {
"playwright-fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "threatflux/playwright-fetch"]
}
}

为 VS Code 配置

手动安装时,在 VS Code 的用户设置(JSON)文件中添加以下 JSON 块:

使用 uvx
{
"mcp": {
"servers": {
"playwright-fetch": {
"command": "uvx",
"args": ["mcp-server-playwright-fetch"]
}
}
}
}
使用 Docker
{
"mcp": {
"servers": {
"playwright-fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "threatflux/playwright-fetch"]
}
}
}
}

命令行选项

服务器支持以下命令行选项:

  • --user-agent:自定义 User-Agent 字符串。
  • --ignore-robots-txt:忽略 robots.txt 限制。
  • --proxy-url:请求使用的代理 URL。
  • --headless:以无头模式运行浏览器(默认:True)。
  • --wait-until:指定何时认为导航成功(可选值:"load", "domcontentloaded", "networkidle", "commit",默认:"networkidle")。

💻 使用示例

基础用法

# 使用默认设置运行
uv run mcp-server-playwright-fetch

高级用法

# 使用自定义用户代理和代理运行
uv run mcp-server-playwright-fetch --user-agent="MyCustomAgent/1.0" --proxy-url="http://myproxy:8080"

# 以可见浏览器模式运行以进行调试
uv run mcp-server-playwright-fetch --headless=false

🔧 技术细节

调试方法

可以使用 MCP 检查器调试服务器:

npx @modelcontextprotocol/inspector uvx mcp-server-playwright-fetch

与标准抓取服务器的差异

本实现与标准的抓取 MCP 服务器有以下不同:

  1. 浏览器自动化:使用 Playwright 渲染 JavaScript 密集型页面。
  2. 内容提取:尝试从常见页面结构中提取主要内容。
  3. 等待选项:可配置页面加载策略(等待加载、DOM 内容、网络空闲)。
  4. 可见浏览器选项:可使用可见浏览器进行调试。

📄 许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

👨‍💻 作者

本项目由 Wyatt Roersma 创建,并得到了 Claude Code 的协助。

  • 0 关注
  • 0 收藏,23 浏览
  • system 提出于 2025-10-04 20:42

相似服务问题

相关AI产品