返回市场
剧透抓取器

剧透抓取器

作者:ThreatFlux2 星标更新:2025-05-02

项目介绍

Playwright Fetch MCP Server

GitHub release (latest by date) CI codecov License: MIT Python Version Playwright MCP Code style: black

这是一个使用Playwright进行浏览器自动化以提供网页内容抓取能力的Model Context Protocol服务器。该服务器使LLMs能够从网页中检索并处理JavaScript渲染的内容,并将HTML转换为易于消费的markdown。

作者

Wyatt Roersma 创建,Claude Code 提供了帮助。

主要功能

  • 浏览器自动化:使用Playwright来渲染具有完整JavaScript支持的网页
  • 内容提取:自动识别并从网页中提取主要内容区域
  • Markdown转换:将HTML转换为干净、可读的markdown
  • 分页支持:通过分页处理大量内容
  • 遵守robots.txt:尊重robots.txt指令进行自主抓取
  • 代理支持:允许通过代理服务器路由请求
  • Docker就绪:可通过Docker HubGitHub Container Registry 获取预构建的Docker镜像

可用工具

  • 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

要求

  • Python 3.13.2 或更高版本
  • uv 包管理器
  • 已安装的Playwright浏览器

安装

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 .

配置

针对Claude.app配置

添加到您的Claude设置中:

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

针对VS Code配置

对于手动安装,将以下JSON块添加到VS Code中的用户设置(JSON)文件中。

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

命令行选项

服务器支持这些命令行选项:

  • --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

与标准Fetch服务器的区别

此实现与标准fetch MCP服务器的不同之处在于:

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

许可证

本项目根据MIT许可证发布。详情见LICENSE文件。