Scrapling 新手使用教程:85.9k Star 的反爬虫框架,pip 一键安装,绕过 Cloudflare 还能自适应网站改版

Scrapling 封面

写爬虫最怕什么?

前一晚还好好的脚本,第二天早上起来全趴窝——页面改版了,选择器失效了;或者更惨的,请求发出去直接被 Cloudflare 拦下,返回一坨”请验证您是真人”的验证码,人当场裂开。

最近 GitHub 上有个项目把这两个痛点一次解决了:Scrapling,目前狂揽 85.9k Star、8.8k Fork,今天还挂在 GitHub Trending 日榜上(单日 +858 Star)。它是一套自适应的 Python 爬虫框架,官方一句话介绍就很嚣张:

从单次请求到整站爬取,一个框架全搞定;解析器能”记住”元素,网站改版后自动帮你把数据找回来;抓取器开箱绕过 Cloudflare Turnstile。

今天这篇新手教程,从零开始带你装上、跑通、爬到数据,全程照抄就能运行。

一、Scrapling 是什么来头?

先看仓库真实数据(截至发文时):

Scrapling GitHub 仓库

项目 数据
仓库 D4Vinci/Scrapling
Star / Fork 85.9k / 8.8k
开源协议 BSD-3-Clause(可放心商用、改造)
最新版本 v0.5(2026-10-17 发布)
语言支持 Python 3(文档已翻译成中日韩等 10 种语言)
测试覆盖率 92%,全量类型标注

它和你可能用过的 BeautifulSoup、Scrapy 什么关系?API 长得像 Scrapy/BeautifulSoup(选择器语法一模一样),但内核完全不同,主打三件事:

  • 自适应解析:选择器记住了元素,网站改版后传个参数就能自动重新定位;
  • 反爬绕过:内置隐身抓取器,能过 Cloudflare Turnstile 这类”真人验证”;
  • 整站爬取框架:并发爬取、断点续爬(Ctrl+C 停下,重启接着爬)、自动代理轮换、自动调节请求速度。

换句话说:以前要拼三四个库才能干的事,现在一个 pip 包全包了。

二、安装:两行命令搞定

打开终端(命令行),先确保有 Python 3.9+,然后:

pip install scrapling

装完再执行一次初始化命令,它会自动把浏览器内核等额外依赖装好(爬动态页面要用):

scrapling setup

小提示:国内网络 pip 慢的话,加个清华镜像:pip install scrapling -i https://pypi.tuna.tsinghua.edu.cn/simple。另外官方还提供 Docker 镜像(docker pull pyd4vinci/scrapling),不想折腾环境可以直接拉。

三、第一个爬虫:5 分钟爬到数据

新建一个 demo.py,粘贴下面这段(这是官方示例站,专供练手,随便爬):

from scrapling.fetchers import Fetcher

page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()

for q in quotes:
    print(q)

运行:

python demo.py

控制台会刷出一堆名人名言——爬取成功。拆解一下这几行:

  • Fetcher.get(...) —— 发一个 HTTP 请求拿回页面,相当于 requests,但默认伪装成 Chrome 浏览器的 TLS 指纹(网站很难认出你是脚本);
  • page.css('.quote .text::text') —— CSS 选择器取元素,语法和 BeautifulSoup/Scrapy 完全一样,会的人零学习成本;
  • .getall() —— 一次拿全部,只取第一条用 .get()。

想取正文以外的东西?XPath 也支持:

titles = page.xpath('//span[@class="text"]/text()').getall()

四、进阶一:遇到反爬网站怎么办?

普通请求被拦(比如目标站套了 Cloudflare),换 StealthyFetcher——它会启动一个”隐身浏览器”,模拟真实浏览器行为并自动过验证:

from scrapling.fetchers import StealthyFetcher

page = StealthyFetcher.fetch(
    'https://example.com/',
    headless=True,          # 无界面模式,服务器上也能跑
    solve_cloudflare=True,  # 自动过 Cloudflare 验证
)
data = page.css('.product').getall()

还有一种 DynamicFetcher,就是完整的浏览器自动化(基于 Playwright),适合页面靠 JavaScript 动态加载的情况。

三个抓取器怎么选?一张表说清楚:

抓取器 底层 适用场景
Fetcher HTTP 直连 静态页面,速度最快
StealthyFetcher 隐身浏览器 有反爬/验证码的站
DynamicFetcher Playwright 浏览器 JS 动态渲染的页面

它们都有对应的 Session 版本(FetcherSession、StealthySession、DynamicSession),用 with 包起来就能跨请求保持 Cookie 和登录状态——登录一次,后面随便爬。

五、进阶二:网站改版了,脚本不用重写

这是 Scrapling 最”黑科技”的地方:自适应选择器。

普通爬虫一旦页面结构调整,选择器就废了。Scrapling 的做法是——第一次抓取时把元素”记住”,之后网站怎么改版,它都能靠相似度算法自动把原来那个元素找回来:

# 第一次抓取时开启自适应
products = page.css('.product', auto_save=True)

# ...过阵子网站改版了,选择器对不上了?
# 传 adaptive=True,它会自动重新定位原来的元素
products = page.css('.product', adaptive=True)

对需要长期跑的采集任务来说,这功能等于给脚本上了份”防改版保险”。

六、进阶三:整站爬取(Spider 框架)

要爬整个网站,就用它的 Spider 框架,写法和 Scrapy 几乎一样:

from scrapling.spiders import Spider, Response

class MySpider(Spider):
    name = "demo"
    start_urls = ["https://example.com/"]

    async def parse(self, response: Response):
        for item in response.css('.product'):
            yield {"title": item.css('h2::text').get()}

MySpider().start()

别小看这几行,背后自带一整套工程能力:

  • 并发爬取 + 按域名限速,爬太快被封会自动降速(AutoThrottle);
  • 断点续爬:Ctrl+C 优雅退出,重新运行自动从断点接着爬;
  • 阻塞检测:请求被拦自动识别并重试;
  • 内置导出:result.items.to_json() / to_csv() 一行出数据;
  • 还有现成模板:CrawlSpider(按规则跟进链接)、SitemapSpider(按 sitemap 爬)、ShopifySpider(一键爬完 Shopify 商城所有商品)。

七、彩蛋:不想写代码也能爬

Scrapling 自带命令行,直接在终端里爬一个 URL:

scrapling extract "https://example.com" --css ".product"

另外它还内置了一个交互式 IPython 壳(scrapling shell),可以边调试边写脚本,甚至把浏览器开发者工具里的 curl 请求直接转成 Scrapling 代码。

对 AI 时代来说更实用的是:它自带 MCP Server,接进 Claude、Cursor 这类 AI 工具后,AI 能直接帮你爬网页、过验证码、提取数据,还能一键把网页转成干净的 Markdown 喂给大模型做知识库。

八、官方文档(有中文)

官方文档已经翻译成简体中文,装之前或用的时候都可以翻一翻:

Scrapling 官方文档

地址:https://scrapling.readthedocs.io(右上角可切中文)

九、常见问题 FAQ

Q:和 Scrapy 比哪个好?
A:新手建议先玩 Scrapling——API 差不多但更现代,反爬和自适应是送的;已有 Scrapy 项目也能无缝接入(加个 @scrapling_response 装饰器就能用 Scrapling 的解析器)。

Q:爬虫违法吗?
A:框架本身仅供学习研究,实际使用请遵守目标网站的服务条款和 robots.txt,别拿去爬个人隐私数据。

Q:Windows 上能用吗?
A:能,Python 3.9+ 全平台支持;v0.5 还专门修了 Windows 管理员权限下启动浏览器的 bug。

写在最后

说实话,现在爬虫库卷成这样,Scrapling 还能单日涨 858 Star 不是没道理的——它把”反爬绕过”和”改版自适应”这两个最烦人的痛点做成了开箱即用,同时保留了 Scrapy 老用户熟悉的写法。如果你正被某个网站的反爬折磨,或者受够了改一次版就要改一次脚本,真的可以试试它。

📥 资源下载

官方 GitHub 源码仓库(v0.5):
https://github.com/D4Vinci/Scrapling

源码包直链(v0.5 zip,约 4.3MB):
https://codeload.github.com/D4Vinci/Scrapling/zip/refs/tags/v0.5

PyPI 安装(推荐):
https://pypi.org/project/scrapling/

注:本机夸克网盘登录凭证已过期(需扫码重新登录后才能转存),本次下载区改用官方 GitHub 源,可正常下载。


关注公众号:「实用软技」,在公众号窗口里回复关键字“软件”即可免费获取

100T高转存免费网盘资源精选【持续更中~~~~】:点击查看

发表回复