fetcher-mcp
Fetcher MCP: Web scraping server for AI, using Playwright.

fetcher-mcp Solution Overview
Fetcher MCP is a powerful MCP server designed for web content extraction using the Playwright headless browser. It excels at handling dynamic web pages and modern web applications by executing JavaScript, unlike traditional web scraping tools. A key feature is its intelligent content extraction, which utilizes a readability algorithm to automatically extract the main content from web pages, removing irrelevant elements.
This server supports both HTML and Markdown output formats for seamless integration with various downstream applications. The fetch_urls
tool enhances efficiency by enabling concurrent fetching of multiple URLs. It also optimizes resource usage by automatically blocking unnecessary elements like images and stylesheets.
Fetcher MCP provides robust error handling and configurable parameters for timeouts and content extraction, ensuring reliable operation even with complex web pages. By enabling AI models to access and process up-to-date web content, Fetcher MCP significantly expands their capabilities. It integrates via standard MCP client-server architecture, offering a straightforward setup and usage.
fetcher-mcp Key Capabilities
JavaScript渲染支持
Fetcher-MCP的核心价值在于能够抓取并正确渲染JavaScript驱动的动态网页内容。传统的网页抓取工具通常无法有效处理这类页面,因为它们只能获取服务器返回的初始HTML代码,而忽略了由JavaScript在客户端动态生成的内容。Fetcher-MCP通过集成Playwright无头浏览器,模拟真实用户的浏览器环境,执行页面上的JavaScript代码,从而获取完整的、渲染后的HTML。这使得AI模型能够访问到网页上所有可见的信息,包括那些通过AJAX请求、DOM操作等方式动态加载的内容。
例如,许多现代Web应用使用React、Angular或Vue.js等框架构建,其内容主要通过JavaScript动态生成。使用Fetcher-MCP,AI模型可以抓取这些应用的数据,用于训练、分析或内容生成等任务。技术实现上,Playwright提供了一系列API,用于控制浏览器行为,例如页面加载、元素选择、事件触发等,Fetcher-MCP利用这些API实现了对动态网页的完整抓取。
智能内容提取
Fetcher-MCP内置了可读性算法,能够自动从网页中提取主要内容,去除广告、导航栏和其他非必要元素。这对于AI模型来说至关重要,因为原始HTML通常包含大量的噪声数据,会降低模型的效率和准确性。通过智能内容提取,Fetcher-MCP可以提供更干净、更结构化的数据,使AI模型能够更专注于核心信息的处理。
例如,当需要从新闻网站抓取文章内容时,Fetcher-MCP可以自动识别并提取文章的正文部分,忽略页面上的广告、侧边栏和页脚等内容。这大大简化了数据预处理的流程,提高了AI模型处理数据的效率。技术实现上,Fetcher-MCP使用的可读性算法分析HTML的结构和内容,识别出最有可能包含主要内容的区域,并将其提取出来。
并行批量抓取
Fetcher-MCP支持并行批量抓取多个URL,显著提高了处理大量网页的效率。fetch_urls
工具允许用户提供一个URL列表,Fetcher-MCP会并发地抓取这些URL的内容,而不是逐个抓取。这对于需要处理大量数据的AI应用来说非常重要,例如,构建一个大规模的知识图谱或训练一个自然语言处理模型。
例如,如果需要从一个电商网站抓取所有商品的信息,可以使用fetch_urls
工具并行抓取所有商品页面的URL,从而大大缩短抓取时间。技术实现上,Fetcher-MCP使用多线程或异步编程技术,同时启动多个Playwright浏览器实例,并发地抓取不同的URL。
可配置的参数
Fetcher-MCP提供了丰富的可配置参数,允许用户根据不同的用例调整抓取行为。这些参数包括页面加载超时时间、内容提取选项、输出格式、是否禁用媒体资源等。通过调整这些参数,用户可以优化抓取性能,适应不同的网站结构和内容类型。
例如,对于加载缓慢的网站,可以增加页面加载超时时间;对于只需要原始HTML的场景,可以禁用内容提取;对于需要特定格式输出的场景,可以选择HTML或Markdown格式。技术实现上,Fetcher-MCP将这些参数暴露给用户,允许用户通过API或命令行选项进行配置,从而实现灵活的抓取控制。
资源优化
Fetcher-MCP能够自动阻止不必要的资源(如图像、样式表、字体和媒体文件),从而减少带宽使用并提高性能。这对于AI模型来说非常重要,因为抓取大量网页可能会消耗大量的网络资源。通过阻止不必要的资源,Fetcher-MCP可以显著减少数据传输量,提高抓取速度,并降低成本。
例如,在只需要网页文本内容的场景下,可以禁用图像和视频等媒体资源,从而减少数据传输量。技术实现上,Fetcher-MCP使用Playwright提供的API,拦截并阻止对指定类型资源的请求,从而实现资源优化。