「网页抓取」是「龙虾部署大师」技能市场中的网页采集技能:作用是基于 Scrapling,按页面难度分层处理——从简单的 HTTP 请求,到需要 JavaScript 渲染的动态页面,再到受反爬保护(如 Cloudflare Turnstile)的站点,用 CSS、XPath、文本匹配提取目标内容,并能构建支持并发、多会话、代理轮换、断点续爬的爬虫,输出 Markdown、HTML、文本或结构化数据。
技能效果
让它抓取 example.com 时,它真的请求了页面,把标题和正文整理成 Markdown 存成本地文件,并展示出保存下来的内容和摘要。

抓网页的难度,为什么差这么多
"抓个网页"听起来简单,实际难度跨度很大。最简单的静态页面,一个 HTTP 请求就能拿到完整 HTML;但现代 Web 应用大量靠 JavaScript 渲染,直接请求只能拿到空壳,必须等内容渲染出来才提取得到;更进一步,不少站点上了 Cloudflare Turnstile 等反爬保护,普通请求直接被拦。再加上大规模采集时还要处理并发、会话保持、代理轮换、跑挂了能不能续爬——用一套固定的抓法去硬碰各种页面,要么抓不到,要么很快被封。
这个技能能帮你抓到和产出什么
它基于 Scrapling,把抓取按难度分成三层:get 处理静态页面,fetch 处理需要 JavaScript 渲染的动态页面,stealthy-fetch 用隐身浏览应对受反爬保护、需要绕过 Cloudflare Turnstile 的页面——先用轻量方式试,必要时再升级到浏览器抓取。内容提取上,它支持 CSS 选择器、XPath、文本匹配和元素关系定位目标内容。产出格式按文件扩展名决定,可输出 Markdown、HTML、纯文本或结构化数据(如 JSON)。面对大规模站点,它还能构建支持并发、多会话、代理轮换、暂停恢复(断点续爬)和实时统计的爬虫。
这种"先轻量、再升级"的分层策略是关键:能用 HTTP 请求解决就不动用浏览器,既快又省资源;只有遇到 JS 渲染或反爬时才升级到更重的抓法,避免一上来就用最重的方案拖慢整体。
用前须知
该技能需要 Python 3.10+,并安装 scrapling[all]>=0.4.2 与配套的浏览器安装命令;默认无需 API Key。中国大陆网络环境下可能需要固定 Playwright 版本并配置镜像源。请在合规、获得授权的前提下采集公开网页内容,遵守目标站点的使用条款。
怎么用它
用法是把目标网址、要提取的内容和保存格式用自然语言交给它,抓取层级和选择器策略由它按页面情况选择。例如可以这样对它说:
可以这样对它说
- "抓这个新闻站的文章标题和正文,先用 Markdown 保存成本地文件。"
- "这个页面靠 JS 加载商品列表,要等内容出现再提取价格和库存字段。"
- "目标站有 Cloudflare 拦截,试试隐身浏览抓指定选择器的内容。"
它适合这些场景:把博客、新闻或文档页面抓成 Markdown 便于阅读归档;现代 Web 应用必须等 JavaScript 渲染后才能提取内容;受反爬保护的页面需要更稳健的浏览器抓取和选择器策略;大规模站点采集需要并发爬虫、断点续爬和实时统计。适合数据工程师、研究人员、自动化开发者、增长分析师,以及需要合规采集公开网页的团队,尤其是从小规模提取扩展到爬虫项目的场景。
大家常问
为什么很多网页直接用 HTTP 请求抓,拿到的内容是空的?
纯 HTTP 请求只拿到服务器返回的初始 HTML。现代页面常是「空壳」,真正的数据由浏览器执行 JavaScript、再调接口异步填进 DOM。请求端没有 JS 引擎、不会跑后续脚本,所以拿到的是没装修的毛坯,内容自然缺失。

静态网页和动态网页在抓取上有什么区别?
静态页的数据已嵌在初始 HTML 里,一次请求加解析就能取到,开销低;动态页初始 HTML 只是壳,要等 JavaScript 渲染、DOM 稳定后才提取,需无头浏览器执行,开销高。工程上优先走静态路径,能嗅探内嵌 JSON 就别开浏览器。

网页抓取里说的「反爬」到底是什么,为什么普通请求会被拦?
反爬是网站靠多维信号判断请求是否「像人」:检查请求头是否完整、单 IP 频率是否过高、行为模式是否机械、能否执行 JS 计算挑战签名。普通请求缺这些特征,就被限流或拦截。合理做法是控制频率、遵守 robots,而非硬碰。

抓取公开网页数据时,怎样才算合规?
围绕四条原则:检查并遵守目标站 robots.txt 的 Disallow;阅读使用条款,公共可访问不等于可随意复用;两次请求间留足间隔、收到 429 就停;绝不绕过登录、验证码等访问控制。需要破解才能拿到的,就不属于公开数据。

注:技能的实际效果与所选用的 AI 模型能力有关,不同模型下的表现可能存在差异。

提示