使用方法
- 把要处理的文字粘进上面的文本框,或直接在里面输入;上限 10 万个字符。页面打开时已预置一段含四类链接的示例,方便你直接点「提取链接」看效果。
- 默认勾选「包含裸 www. 链接」,这样微信里常见的「www.xxx.com」也能抓到;取消勾选则只认 http/https 标准链接。
- 如果你怀疑链接里的中文或空格被编码成了百分号形式,勾选「解码百分号编码」,工具会对每条链接尝试解码,例如
%E4%B8%AD还原成「中」。 - 点「提取链接」,或在文本框按 Ctrl + Enter(Mac 上 Cmd + Enter);上方三张卡给出总数、去重数、域名数,结果区按出现顺序列出去重后的链接。
- 下方是按域名统计的出现次数表,默认前 12 行,点「加载更多」展开全部;「复制域名表」复制其 TSV,「导出 CSV」存成带 BOM 的文件。
- 「复制列表」把去重后的链接清单直接复制到剪贴板,可整段粘进表格或文档做外链审计。
这个工具能解决什么问题
它的存在是因为链接常常混在大段文字里:聊天记录、需求文档、竞品调研、爬虫原始数据,里面夹着几十上百个网址,手动挑既慢又漏。把文本一次性粘进来,这类「从文本提取URL」的脏活就交给正则完成,人只管看结果。
和在线提取工具相比,本工具完全在浏览器本地运行,粘贴的文本不会上传任何服务器,对含有内部链接、未公开文档的场景更友好;它也不做任何网络请求、不把内容存到别处,适合处理带敏感信息的文本。另外,提取结果可以直接进入后续流程——比如把去重后的链接批量交给下载器或爬虫,省去人工中转。
第一类用途是外链审计。把一篇文章或一页源码粘进来,立刻知道它引了哪些域名、每个域名出现几次,有没有可疑站点,比肉眼扫快得多。
第二类用途是去重与清洗。同一链接在文本里出现多次,本工具只保留一条并记下它出现的次数,导出后就是干净的链接清单,可直接喂给后续脚本。
第三类用途是解码还原。很多系统把中文路径、空格编码成 %E4%B8%AD%E6%96%87 这种形式,人读不懂;解码后你才能确认链接到底指向什么。
本工具不做这些事:不抓取网页本身的内容、不验证链接是否真的能打开(只做文本层面的提取)、不提取邮箱地址(同站已有批量提取邮箱工具)、也不解析短链——短链的真实地址需要联网跳转才能知道,本页纯本地处理无法还原。
提取原理与变量说明
核心是正则并集。标准链接用 https?:\/\/[^\s]+ 匹配,它认 http 与 https 开头、一直到遇到空白为止的一整串;裸 www 链接用 www\.[^\s]+ 匹配,覆盖那些省略了协议、直接以 www 起头的微信式链接。两者用竖线并成一条正则,一次扫描就能同时抓出两类。
百分号编码与解码。URL 里的非 ASCII 字符(中文、空格等)会被编码成「百分号 + 两位十六进制」,例如「中」变成 %E4%B8%AD,「文」变成 %E6%96%87,连起来 %E4%B8%AD%E6%96%87 共 6 个字节、18 个字符。解码用 decodeURIComponent,但只对合法编码安全:遇到残缺或错位的百分号串,解码会抛异常,所以本工具把每条链接的解码包在 try/catch 里,失败的就原样保留。
URL 与邮箱是两件事。像 user@example.com 这种「用户名 @ 主机」不是 URL,本工具的正则不会误抓——正则要求以 http(s):// 或 www. 开头,邮箱自然被排除。
去重与计数。同一个链接出现多次只计一次;同时统计三个数:总数(所有命中)、去重后(不重复链接数)、各域名出现次数。域名取自去掉协议与 www. 前缀之后的主机部分。
IDN 与 punycode。中文域名如 例子.中国 在 URL 里写作 xn--fsqu00a.xn--fiqs8s,本工具提取后保留原始串,不做 punycode 转回,避免引入额外不确定行为。
完整示例(默认文本实测)
默认文本框里写了四段内容,其中 https://www.liuquan.net 出现了两次(一次在开头、一次在结尾用于测试去重),另外有 http://example.com/path?a=1&b=2、www.github.com、https://example.com/%E4%B8%AD%E6%96%87 各一次,还有一封邮箱 user@example.com 不应被抓。
- 不勾解码时,提取到 4 条去重链接:
https://www.liuquan.net(出现 2 次)、http://example.com/path?a=1&b=2(1 次)、www.github.com(1 次)、https://example.com/%E4%B8%AD%E6%96%87(1 次)。 - 勾选解码后,最后一条变成
https://example.com/中文,其余不变;总数仍是 5 次命中、去重后 4 条。 - 域名统计:
www.liuquan.net出现 2 次,example.com出现 2 次(其中一次带中文路径),github.com出现 1 次。
这正好演示了去重、计数与解码三件事:重复链接被合并、命中次数被记下来、编码串被还原成可读文字。
常见链接形态对照
下表列出本工具会识别的几种链接形态与处理方式,均来自内置示例。
| 形态 | 示例 | 处理方式 |
|---|---|---|
| 标准 https 链接 | https://www.liuquan.net | 直接提取 |
| 带路径与查询参数 | http://example.com/path?a=1&b=2 | 整串提取到空白为止 |
| 裸 www 链接 | www.github.com | 勾选后提取 |
| 百分号编码 | https://example.com/%E4%B8%AD%E6%96%87 | 解码后为 /中文 |
结果边界与适用说明
- 文本框为空时提示「请先粘贴包含链接的文本」,不输出任何结果。
- 去重按「完全相等的字符串」判断;
http://与https://视为不同链接,末尾是否带斜杠也视为不同。 - 解码失败时(百分号串非法)该链接原样保留,不会因一条坏数据中断整次提取。
- 邮箱地址
user@host不会被误抓,因为它不以 http(s):// 或 www. 开头。 - 链接以「遇到空白字符为止」作为结束,因此结尾紧跟的中文句号、英文逗号等会被一并切掉;如需保留请自行确认。
- 裸 www 链接的开关只控制 www. 这一类;标准 http/https 链接始终提取。
- 文本上限 10 万字符,超出部分无法输入;超长文本建议分段处理。
- 本工具不联网、不验证链接可达性,只做文本提取与统计,结果以你粘贴的内容为准。
常见问题
为什么微信里复制的链接抓不到?
因为微信常把链接写成 www.xxx.com 这种省略协议的形式,标准正则只认 http(s):// 就会漏掉。本工具默认勾选「包含裸 www. 链接」,专门补上这一类;若你确认文本里只有标准链接,也可以取消勾选。
解码后出现了乱码或报错怎么办?
百分号编码只在本身是合法 UTF-8 序列时才能正确解码。如果原始串被截断、混入了非编码字符,decodeURIComponent 会抛异常,本工具捕获后保留原始链接而不是中断,因此你看到的仍是编码形态,需要人工确认来源。
为什么邮箱没被提取出来?
因为本工具只提取以 http(s):// 或 www. 开头的网址,邮箱 user@example.com 不符合这个形态,也不会误判为链接。若你需要提取邮箱,同站有专门的批量提取邮箱地址工具。
同一条链接出现两次,会不会算两次?
会分别计入「总数」两次,但「去重后」只算一条,结果区也只列一次。域名统计表里的「出现次数」会如实记为 2,方便你判断这条链接的重要性。
中文域名 www.例子.中国 为什么显示成 xn-- 开头?
那是 punycode 编码,国际化域名在 URL 里必须用 ASCII 形式表示,例子.中国 对应 xn--fsqu00a.xn--fiqs8s。本工具保留原始串不强制转回,避免引入额外不确定行为;你可按需自行还原。
导出的 CSV 用 Excel 打开是乱码?
本工具的 CSV 在文件开头写入了 UTF-8 字节序标记(BOM),Excel 据此以 UTF-8 打开,中文不乱码。如果你看到乱码,多半是用纯文本编辑器按本地编码读了,改用 Excel 打开即可。
链接末尾的标点符号会被带进来吗?
不会。提取以「遇到空白为止」作为结束,但中文句号、英文逗号、右括号等紧跟在链接后的标点会被一并截断,因为它们不是 URL 的合法结尾字符。若你的文本里链接与标点之间本就有空格,则标点自然留在外面。
这个工具免费吗?数据安全吗?
免费,无需注册。所有提取与统计都在当前浏览器本地完成,文本不会上传服务器,刷新页面后输入框内容也不会被保存。