cute-web-scraper 是一个免费、本地运行的 MCP 服务器,为 Claude 赋予网页抓取能力。它不需要 API 密钥、云账户或按页付费,通过自然语言指令即可抓取页面、在需要时渲染 JavaScript、绕过拦截,并返回干净的 Markdown 或可查询的表格,无需编写选择器或胶水代码。
主要能力
四层递进抓取:普通 HTTP 客户端处理大多数页面;若被拒绝,则使用真实浏览器 TLS 指纹(Chrome、Safari)重试;js_render 使用 Chromium 渲染单页应用;最后使用隐身补丁浏览器应对需要 JavaScript 且拒绝普通自动化的站点。每层解决不同的失败原因,结果会报告由哪一层提供。ASOS、eBay、Booking.com 和 Trustpilot 在家庭网络下无需代理即可返回真实数据。
节省上下文:文章页面会剥离导航、Cookie 横幅和页脚,例如 BBC 新闻页从 20,513 字符缩减到 3,198 字符。大型结果存入 SQLite 表,通过 SQL 查询而非粘贴到对话中。
真实报告失败:拦截检测基于页面正文而非状态码,避免将拒绝页面误报为数据。
整站抓取:支持站点地图发现、并行抓取,25 个工具覆盖产品、联系人、Shopify 目录、地点、截图和变更跟踪。
文档提取:PDF、.docx、.xlsx 链接会被提取为文本和 Markdown 表格,文件类型根据字节识别。
使用方式
通过 claude mcp add 连接到 Claude Code。首次使用 js_render 时会自动下载 Chromium(约 130MB)。典型流程为:analyze_website → crawl_site → fetch_pages → query_table。
支持 extract_by_selector 提取任意字段,通过 fields 映射列名到 CSS 选择器,row_selector 将匹配项转为行,@attr 后缀读取属性。fetch_page 支持 actions 在读取前执行点击、输入、等待、滚动等操作。inspect_network 可渲染页面并报告请求,便于直接调用 API。track_changes 存储快照并报告新增、相同或变更及统一差异。
大型抓取可使用 save_as 将结果写入 SQLite 表,query_table 严格只读,仅接受 SELECT。表存储在 ~/.cute-web-scraper/results.db,可通过 SCRAPER_DB_PATH 更改。
find_places 和 find_places_nearby 使用 OpenStreetMap 数据查找地点,支持友好类别名或原始 OSM 标签。
适用场景
适合需要将网页数据接入 Claude 进行问答、分析或监控的用户,例如抓取商品目录、收集联系人、比较价格、跟踪页面变化、查找本地商家等。
限制
不提供代理轮换和 CAPTCHA 解决,无法绕过 IP 封禁或地理限制。robots.txt 的 Disallow 规则不被遵守,仅用于定位站点地图。自适应退避机制按域名独立跟踪,遇到 429、403 或 Cloudflare 挑战时延迟加倍至最多 60 秒。工具输出默认上限 25,000 字符,超出会截断并提示使用 save_as。LinkedIn 等站点可能需要指向已登录的 Chrome 配置文件。电话提取较为保守,要求国家代码或长途前缀。单元测试不触网,集成测试默认排除。