Scrapling 网页抓取框架:3 个 Fetcher 类跑通静态页、JS 渲染和反爬站点

Scrapling 网页抓取框架:3 个 Fetcher 类跑通静态页、JS 渲染和反爬站点 Scrapling 网页抓取框架3 个 Fetcher 类跑通静态页、JS 渲染和反爬站点【免费下载链接】Scrapling️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!项目地址: https://gitcode.com/GitHub_Trending/sc/ScraplingScrapling 是一个自适应网页抓取框架。目标站有 WAF、Cloudflare 或 JS 渲染它能抓。站点改版后它还能自动重定位元素不用再重写选择器。你大概率会在这三种场景里用到它目标站有防护普通 HTTP 请求直接 403 或被拦页面靠 JavaScript 渲染静态 HTML 里拿不到正文要整站爬取任务跑到一半断了不想从头再来对号入座之后下面按场景给你最短路径。最小可运行路径一条安装加一个示例pip install scrapling[fetchers] scrapling install # 下载浏览器及依赖from scrapling.fetchers import Fetcher page Fetcher.get(https://quotes.toscrape.com/, impersonatechrome) quotes page.css(.quote .text::text).getall() print(quotes[:3])Fetcher是普通 HTTP 抓取器impersonatechrome让它带上 Chrome 的 TLS 指纹和请求头替你把像真人这层伪装做了返回的page是可解析对象CSS/XPath 选择器风格接近 BeautifulSoup拿不到内容时先查选择器而不是猜网络问题。三个 Fetcher 各管一类页面按需求换导入即可返回的都是同一种解析对象from scrapling.fetchers import StealthyFetcher, DynamicFetcher # 过 Cloudflare自动处理 Turnstile/Interstitial 人机验证 page StealthyFetcher.fetch(https://目标站.com, solve_cloudflareTrue, headlessTrue) # JS 渲染等页面网络静默 500ms 再返回避免抓到半渲染内容 page DynamicFetcher.fetch(https://动态站.com, network_idleTrue)StealthyFetcher是隐身浏览器抓取器帮你过 Cloudflare 类人机验证DynamicFetcher驱动完整浏览器执行 JavaScript专治HTML 是空的。站点改版后不用重写选择器products page.css(.product, auto_saveTrue) # 记录元素特征 products page.css(.product, adaptiveTrue) # 改版后按相似度找回auto_save保存元素的位置特征以后站点改了 class、调了结构adaptive模式会按相似度把元素找回来省掉每次改版手工调选择器。规模上到整站爬取Spider 框架支持并发爬取、断点续传CtrlC 暂停后重启继续和多种会话混用适合需要长期跑的大任务架构图如下踩坑排查现象、原因、解法现象from scrapling.fetchers import Fetcher报ModuleNotFoundError。原因裸装pip install scrapling只装解析器不带抓取依赖。解法装scrapling[fetchers]并执行scrapling install。现象JS 站点只抓到壳正文是空的。原因页面还没渲染完就返回了。解法给DynamicFetcher或StealthyFetcher加network_idleTrue。现象普通请求被 WAF 拦返回 403 或验证页。原因TLS 指纹/请求头暴露了脚本特征。解法换StealthyFetcher加solve_cloudflareTrue或给Fetcher加impersonatechrome。常用操作速查场景写法用途普通 HTTPFetcher.get(url, impersonatechrome)带浏览器指纹抓静态页过 CloudflareStealthyFetcher.fetch(url, solve_cloudflareTrue)过人机验证JS 渲染DynamicFetcher.fetch(url, network_idleTrue)等渲染完成解析本地 HTMLSelector(html)不发起请求直接解析整站爬虫Spider子类 MySpider().start()并发爬取、断点续传下一步选哪个 Fetcher 看 fetching 选择指南解析写法看 选择器文档。抓之前先看目标站的 robots.txt控制并发和频率Spider 里也有robots_txt_obey选项可以顺手打开。【免费下载链接】Scrapling️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!项目地址: https://gitcode.com/GitHub_Trending/sc/Scrapling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考