项目简介
Scrapling是一个先进的Python Web抓取库,具备自适应、高性能和反爬虫能力。其内置的MCP服务器模块允许LLM(如Claude, Cursor等)通过标准化的JSON-RPC协议调用Scrapling的功能,实现AI辅助的Web内容获取和数据提取,从而优化LLM的上下文理解并降低Token使用成本。
主要功能点
- 资源托管与数据访问:提供结构化的Web页面内容(Markdown、HTML或纯文本)作为资源,支持CSS选择器进行精准内容提取。
- 工具注册与执行:注册了多种Web抓取工具,包括:
- HTTP GET请求:用于普通HTTP请求,适用于防护级别较低的网站。
- 批量HTTP GET请求:同时对多个URL发起GET请求。
- 动态抓取 (Fetch):使用Playwright驱动浏览器进行抓取,适用于需要JavaScript渲染的动态网站。
- 批量动态抓取 (Bulk Fetch):同时使用Playwright抓取多个动态页面。
- 隐秘抓取 (Stealthy Fetch):利用Camoufox浏览器,提供高级反爬和反指纹识别功能,适用于高防护级别网站。
- 批量隐秘抓取 (Bulk Stealthy Fetch):同时使用Camoufox隐秘抓取多个页面。
- 协议支持:通过Stdio和Streamable HTTP传输协议与MCP客户端通信。
安装步骤
- 确保您已安装Python 3.10或更高版本。
- 安装Scrapling库及AI相关依赖:
pip install "scrapling[ai]" - 安装浏览器驱动(Playwright和Camoufox需要):
scrapling install
服务器配置 (供MCP客户端使用)
MCP客户端需要配置与Scrapling MCP服务器建立连接。以下是推荐的JSON格式配置示例,请根据您的实际需求调整'command'和'args':
{ "server_name": "Scrapling MCP Server", "description": "通过Scrapling库为LLM提供强大的Web抓取和数据提取工具,支持自适应抓取和反爬机制。", "command": "scrapling", "args": ["mcp", "--http", "--host", "0.0.0.0", "--port", "8000"], "transport": "streamable-http", "endpoint": "http://0.0.0.0:8000" }
参数注释:
- 'server_name': (字符串) MCP服务器的显示名称。
- 'description': (字符串) 服务器的简要描述。
- 'command': (字符串) 启动Scrapling CLI的命令,通常是'scrapling'。
- 'args': (字符串数组) 传递给'scrapling'命令的参数。
- 'mcp': 告诉Scrapling启动MCP服务器模式。
- '--http': (可选) 启用HTTP传输协议。如果不需要HTTP,可以移除此参数。
- '--host': (可选) 服务器监听的主机地址。默认值为'0.0.0.0',表示监听所有可用网络接口。
- '--port': (可选) 服务器监听的端口号。默认值为'8000'。
- 如果'--http'参数被移除,服务器将默认使用Stdio传输协议。
- 'transport': (字符串) 指定MCP客户端应使用的传输协议。根据'args'中的'--http'参数选择'streamable-http'或'stdio'。
- 'endpoint': (字符串, 仅当'transport'为'streamable-http'时需要) MCP服务器的访问地址。
基本使用方法
-
启动MCP服务器:在终端中运行以下命令。如果希望通过HTTP访问,请添加'--http'参数:
scrapling mcp --http --host 0.0.0.0 --port 8000服务器启动后,它将等待MCP客户端的连接。
-
(MCP客户端操作):在您的LLM客户端(如Cursor或Claude)中,配置Scrapling MCP服务器的连接信息(参考“服务器配置”部分),然后即可通过LLM调用Scrapling提供的各种Web抓取工具。例如,LLM可能会调用'get'工具来获取某个URL的Markdown内容,或调用'stealthy_fetch'工具来处理高防护网站。
信息
分类
网页与API