Scrapling 网页抓取框架
从单页请求到并发爬取,用一套 Python 工具完成网页抓取与数据提取。
- Star 数
- ★ 89k
- 最近更新
- 1 天前
- License
- BSD-3-Clause
- 主语言
- Python
- FA 评分
- 66/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude.ai(部分支持)
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 需要从静态网页提取结构化字段的 Python 开发者,可用 Fetcher 和 CSS/XPath 选择器快速读取页面。
- 不适合
- 只需简单静态页面抓取的用户
- 不需要运行 Python 或访问网络的环境
- 源码审查
- 66/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Scrapling 是一个 Python 网页抓取框架,提供 HTTP Fetcher、基于 Playwright 的 StealthyFetcher、解析器和 Spider 爬虫。它可以抓取静态页面、渲染 JavaScript 页面、使用 CSS 或 XPath 提取内容,并捕获浏览器会话中的 API 响应。Spider 支持并发、代理轮换、重试、自动限速以及暂停和恢复,并可将结果导出为 JSON、JSONL、CSV 或 XML。用户可以将它作为 Python 库导入,也可以使用命令行工具;另外还提供供 AI 客户端调用的 MCP Server 和 Agent Skill。它需要本地 Python 环境和网络访问,浏览器抓取还需要安装浏览器依赖。
安装 scrapling 后,可用 Fetcher.get() 发起 HTTP 请求,并通过返回页面的 css()、xpath()、文本或正则查找方法提取内容;对于动态页面,可用 StealthyFetcher 或 StealthySession 运行浏览器抓取。需要批量采集时,可定义 Spider 子类,设置 start_urls 和异步 parse() 回调,生成 Request 或数据项,再用内置导出方法保存结果。Spider 可配置并发、代理轮换、重试、AutoThrottle 和 crawldir 检查点。命令行提供 scrapling extract get、scrapling extract fetch 和交互式 shell;可选 MCP Server 支持 AI 客户端进行网页浏览、提取、截图及访问已保存的登录状态和后台 API 响应。
- 需要从静态网页提取结构化字段的 Python 开发者,可用 Fetcher 和 CSS/XPath 选择器快速读取页面。
- 需要采集 JavaScript 动态内容的研究人员,可用 StealthyFetcher 渲染页面并读取 DOM。
- 需要跨多个页面持续采集的团队,可用 Spider 配置并发、重试、代理轮换和暂停恢复。
- 需要定期收集公开 Shopify 商品目录的开发者,可基于 ShopifySpider 获取商品变体数据。
- 希望从终端直接保存网页内容的用户,可用 scrapling extract 输出文本、Markdown 或 HTML。
- 希望让 Claude、Cursor 等 AI 客户端浏览网页并提取数据的用户,可配置 Scrapling MCP Server。
如何安装或部署这个 Agent?
需要 Python 3.10 或更高版本。基础安装提供解析器;使用 Fetcher 或 Spider 时安装 fetchers 额外依赖,并安装浏览器:
pip install "scrapling[fetchers]"
scrapling installMCP Server、命令行 shell 和全部可选功能分别可通过额外依赖安装:
pip install "scrapling[ai]"
pip install "scrapling[shell]"
pip install "scrapling[all]"HTTP 抓取不需要安装浏览器。README 未给出 MCP 客户端配置文件的具体格式或完整配置步骤。
如何使用这个 Agent?
单页 HTTP 抓取示例:
from scrapling.fetchers import Fetcher
page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()
print(quotes)终端提取并保存为 Markdown:
scrapling extract get 'https://quotes.toscrape.com/' quotes.md批量采集时,可定义 Spider 子类并调用 start();结果可用 result.items.to_json() 保存。MCP Server 是供 AI 客户端使用的可选接口,需安装 scrapling[ai];README 未提供客户端配置示例。
这个 Agent 有哪些优点和局限?
- 同一框架覆盖 HTTP 请求、浏览器渲染、页面解析和并发 Spider 爬取。
- 解析支持 CSS、XPath、文本和正则查找,也提供适应页面变化的元素跟踪。
- Spider 内置代理轮换、重试、AutoThrottle、检查点恢复和多种数据导出。
- 提供 CLI、交互式 shell、MCP Server 和 Agent Skill 等不同使用入口。
- 要求 Python 3.10 或更高版本,使用 Fetcher 和 Spider 需安装额外依赖。
- 浏览器抓取需要下载浏览器及其系统依赖,安装步骤多于基础解析器。
- MCP 客户端配置细节未在给出的 README 内容中说明。
- 抓取目标需要网络访问;采用浏览器模式时还需运行 Playwright 浏览器。
这个 Agent 与同类方案有什么区别?
README 将 Spider API 描述为类似 Scrapy,并说明解析器与 Scrapy/Parsel、BeautifulSoup 风格的 API 相近;也提供将 scrapling_response 装饰器用于现有 Scrapy 回调的集成方式。若团队已经使用 Scrapy,可评估该集成;若需要单一框架覆盖 HTTP、浏览器抓取和爬虫调度,可评估 Scrapling。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Scrapling 网页抓取框架 当前 | 66 · 存在缺口 | 代码库 / SDK免费 | ★ 89k | 1 天前 | Python | — |
| wigolo | 54 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 5.5k | 23 天前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| CamoFox Browser Server | 72 · 存在缺口 | 自托管服务免费 | ★ 425 | 28 天前 | JavaScript | Claude Code |
| Uni-CLI | 72 · 存在缺口 | 命令行工具免费 | ★ 235 | 10 天前 | TypeScript | ChatGPT · Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
提供 allowed_domains、可选 robots.txt 遵循、域级延迟和会话关闭等控制;robots.txt 默认关闭,且代理轮换、隐身浏览器和反机器人绕过功能使外部请求影响较大,故最小权限与外部影响仅部分覆盖。README 说明 MCP 支持认证选项、保存登录态和 API 响应捕获,但所给材料未说明凭据存储、保留和访问控制;请求可以直接发起,未见逐次确认。暂停/恢复与会话关闭提供有限恢复手段。许可证和维护者字段可追溯到仓库作者,但发布者身份仍未知。依赖声明明确,但所给材料未展示锁定或依赖漏洞缓解。
蜘蛛指南与 README 对解析、跟进请求和导出流程基本一致,测试源中也有 MCP 行为断言;但静态审阅不能验证运行结果。依赖版本多为下限范围,未见锁文件或可用性保证。MCP 测试展示异常会返回错误文本,蜘蛛文档展示统计信息;普通用户错误处理覆盖证据有限。
材料覆盖单页抓取、并发蜘蛛、浏览器、HTTP、MCP、CLI、流式处理和多种导出,且面向 Python 开发者和 AI 工具。文档描述域限制、robots.txt 和会话类型等边界,但反机器人绕过等能力的适用边界及授权使用要求说明不足。蜘蛛配置可精确选择域、延迟与并发;文档列出 Python 3.10 及以上和多种使用入口,但部署环境细节有限。
README 按抓取、解析、爬取、AI 和开发体验组织,并链接专门文档;蜘蛛指南有先决知识、逐步教程、示例和后续阅读。安装说明未出现在所给 README 部分中,依赖项和可选项在 pyproject 中可见但安装步骤证据有限。名称和 API 术语总体一致,但材料同时展示多个接口,完整稳定性无法确认。限制说明包含 robots.txt 默认关闭及其行为细节,但未见全面的已知限制清单。BSD-3-Clause 许可证文本完整。版本字段为 0.5,并提供变更日志与发布说明入口;所给材料未含变更记录内容。pyproject 指定作者和维护者,但维护响应承诺或更新责任机制不明确。
示例提供可直接使用的 Python 代码、字段提取和 JSON/JSONL/CSV/XML 导出;爬虫框架将请求、解析、并发、重试和导出整合,较单页脚本有明确增益。浏览器、MCP、代理和依赖选项增加部署与运行成本;材料未提供定量成本或资源基准,README 的性能和覆盖率说法不能由所给文件独立确认。
README 的具体功能主张可与蜘蛛指南、pyproject、许可证和 MCP 测试片段相互对照;但提供的测试仅为部分源文件,静态审阅不代表执行验证。性能、覆盖率及日常使用规模等说法缺乏所给材料中的独立佐证。文档在机器人规则默认关闭等处给出具体条件;部分宣传性表述未明确区分测量事实与主张,因此未给满分。
- 该框架会向目标网站发出请求,并提供代理轮换、浏览器自动化和反机器人绕过能力;使用者应自行确认目标授权、适用规则和请求范围。
- 材料提及 MCP 登录态和响应捕获,但没有说明敏感数据保留与访问控制;配置前应审查相关数据流。
常见问题
使用 Scrapling 是否需要付费服务或 API 密钥?
最小安装能否直接使用 Fetcher 和 Spider?
pip install scrapling 只包含解析器及其依赖;Fetcher 和 Spider 需要安装 scrapling[fetchers]。浏览器抓取还要运行 scrapling install。它能处理 JavaScript 页面吗?
Spider 可以暂停并继续运行吗?
crawldir 后,Spider 可保存待处理请求和已访问 URL;停止后使用相同目录重新启动即可恢复。已抓取的项目需单独保存。Scrapling 会自动遵守 robots.txt 吗?
robots_txt_obey 标志,用于遵守 Disallow、Crawl-delay 和 Request-rate 指令;是否启用取决于配置。