HTML 元素提取

文本处理 完全免费 🎯 任意 CSS 选择器 📊 匹配数量统计 📥 离线可用 🌙 支持黑夜模式

写爬虫前先验证选择器:粘贴 HTML 源码,输入 CSS 选择器,立即批量提取文本、HTML 片段或属性值,匹配数量实时统计,一步定位选择器写得对不对。

类别程序员 · 网络调试
运行方式服务端解析(symfony/dom-crawler)
提取方式文本 / HTML 片段 / 指定属性
数据存储无存储,用完即弃

🔬 CSS 选择器提取

基于 symfony/dom-crawler 服务端解析,支持任意 CSS 选择器语法;输入后自动提取。

📥 HTML 源码
📤 提取结果(每行一条)

                    

核心特性

任意合法 CSS 选择器
提取纯文本内容
提取完整 HTML 片段
提取指定属性值(如 href / src)
多元素批量提取(最多 200 条)
匹配数量实时统计
结果一键复制
支持黑夜模式

为什么要先验证 CSS 选择器?

写爬虫与数据采集时,最耗时的往往不是发请求,而是选择器写错——结构层级多一层少一层、class 名拼错、目标其实在父节点上,结果要么抓不到,要么抓到的全是噪音。定位这类问题如果每次都跑一遍完整脚本,调试成本很高。

本工具把「验证选择器」这一步单独拆出来:粘贴一段 HTML(可以是整页源码,也可以只是目标区块),输入 CSS 选择器,立刻看到匹配到几个元素、每个元素提取出什么内容。确认选择器无误后,再把它复制进正式脚本,一次写对。

支持三种提取方式:文本(去掉标签的纯文字)、HTML(保留标签的片段)、属性(如 href、src、data-id)。底层使用 symfony/dom-crawler 解析,与主流 PHP 爬虫(Goutte、Laravel HTTP + DomCrawler)行为一致,验证通过的选择器可直接复用,不存储任何数据。

怎么用

  1. 粘贴 HTML
    把网页源码或目标区块的 HTML 粘贴到左侧,页面默认已载入一段示例。
  2. 输入选择器
    在「CSS 选择器」中输入定位规则,例如 li.item a、#content .title。
  3. 选择提取方式
    按需切换「提取文本 / 提取 HTML / 提取属性」;选属性时再填入属性名(默认 href)。
  4. 查看与复制
    右侧按行输出结果,顶部显示匹配数量,确认无误后点「📋 复制结果」。

使用技巧

  • 输入与选择器改动后约 0.4 秒自动重新提取,无需手动点按钮。
  • 层级写得太深容易因空白节点失配,优先用 class / id 定位更稳。
  • 提取属性时,元素没有该属性会输出空行,可据此判断哪些节点缺失属性。
  • 选择器语法与 CSS 一致,支持逗号并集:h1, h2, h3。
  • 结果最多展示前 200 条,超出部分仅统计数量,防止页面卡顿。

更新记录

  • v1.0 2026-08-31 首次上线:CSS 选择器提取文本 / HTML / 属性、多元素批量提取、匹配数量统计、结果一键复制(symfony/dom-crawler 驱动)。

常见问题

支持哪些 CSS 选择器语法?
支持标准 CSS 选择器:标签、#id、.class、层级与后代组合(div > p、ul li)、属性选择器([data-id])、伪类 :first-child、:nth-child(),以及逗号并集选择。
「提取文本」和「提取 HTML」有什么区别?
文本会去掉所有标签、只保留可见文字(如「链接 A」);HTML保留元素自身的标签结构(如 <a href="/a">链接 A</a>),适合再交给下游解析。
为什么提示「没有匹配到任何元素」?
说明选择器在当前 HTML 里匹配不到节点。常见原因:标签层级写多或写少、class 名拼写不一致、目标内容由 JS 动态渲染(源码里其实不存在)。可先简化选择器逐步定位。
最多能提取多少个元素?
结果最多返回 200 条,其余仅计入数量统计。这是为了避免超大页面一次性输出过多内容导致浏览器卡顿。
选择器和爬虫里写的一致吗?
一致。底层用 symfony/dom-crawler 解析,和 PHP 生态常见爬虫方案(Goutte、DomCrawler)行为相同,验证通过的选择器可直接搬进脚本。
粘贴的 HTML 会被保存吗?
不会。解析在服务端完成、结果即时返回,不做任何持久化存储,刷新页面后内容即消失。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码