D4Vinci/Scrapling
数据把 HTTP 请求、隐身浏览器、解析和并发爬虫合为一体的 Python 抓取框架,适合从单页请求扩展到整站采集的开发者。
项目介绍
Scrapling 把抓取流程的几个环节放进同一个 Python 库:带浏览器 TLS 指纹模拟的快速 HTTP 请求、应对 JavaScript 渲染和 Cloudflare 防护的隐身浏览器、CSS/XPath/文本/正则解析,以及支持并发、重试、代理轮换和多格式导出的 Spider 框架。它同时提供 CLI、交互式 Shell 和 MCP 服务器,AI Agent 也能通过它浏览页面、提取数据。适合从抓一个页面起步、之后需要整站爬取的开发者。
解析层面有一个值得注意的能力:通过选择器找到的元素在网站改版后可以按相似度重新定位,而不是直接失效。
快速使用
Scrapling 要求 Python 3.10 或更高版本。基础安装只包含解析器;抓取和爬虫需要 fetchers 附加依赖和浏览器组件:
pip install "scrapling[fetchers]"
scrapling install
然后抓取一个页面并提取文本:
from scrapling.fetchers import Fetcher
page = Fetcher.get("https://quotes.toscrape.com/")
quotes = page.css(".quote .text::text").getall()
print(quotes)
要爬取并保存结果,继承 Spider,定义 start_urls 和异步 parse 回调,调用 .start(),再用 result.items.to_json("quotes.json") 导出。README 中针对同一示例站的代码会输出 10,并把作者和名言写入文件(README 示例)。无头浏览器抓取依赖 scrapling install 装好的浏览器资源,普通 HTTP 请求则不需要。
不想写代码时,可以用 extract 命令把页面直接保存为 .txt、.md 或 .html,并用 --css-selector 过滤内容(CLI 文档)。先安装 scrapling[shell],再运行 scrapling shell 进入交互模式。
使用约束
- 默认的
pip install scrapling有意不安装抓取器和 CLI 依赖;在这种安装下导入scrapling.fetchers或scrapling.spiders会报ModuleNotFoundError。 - 浏览器抓取(
StealthyFetcher和隐身会话)需要scrapling install安装的浏览器与指纹依赖,或改用 Docker 镜像pyd4vinci/scrapling;HTTP 抓取不需要。 robots_txt_obey是可选开关,默认不遵守Disallow、Crawl-delay和Request-rate,是否遵守由调用方决定。- 项目声明该库仅用于教育科研目的,使用者需自行遵守当地法律和网站服务条款。
- 许可证为 BSD-3-Clause。
HotRepo 点评
在 2026-11-01 的 Python 日榜记录中,Scrapling 新增 844 Star,并取得当天该语言榜第 6 的最好名次。这只是单日快照,说明它在 Python 榜单上有一个强势的日子,不能据此判断持续趋势;该记录也没有对应的全部语言日榜名次可供比较。项目在 Hacker News 上有过两次讨论,一次是 2024 年 10 月的发布,一次是 2025 年 4 月的 v0.2.99 版本说明,但两次讨论热度都很低(4 分和 1 分),没有值得参考的实质性外部评论。这次增长更像是一个品类信号——一个同时提供 MCP 服务器和 Agent Skill 的抓取库——而不是采用质量的证据。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。