从文本提取URL

把一段含链接的文字粘进来,自动抓出里面所有的网址——既认得 https、http 开头的标准链接,也认得省略协议的裸 www 链接。提取后自动去重、统计总数与去重数、按域名计数,还能一键解码百分号编码,复制结果或导出带字节序标记的 CSV。

提示:在文本框里按 Ctrl + Enter(macOS 用 Cmd + Enter)可立即重提;单按 Enter 是换行。改文本或勾选项也会自动重跑;域名表默认显示前 12 行,点「加载更多」看全部,可复制为 TSV 或导出 CSV。

使用方法

  1. 把要处理的文字粘进上面的文本框,或直接在里面输入;上限 10 万个字符。页面打开时已预置一段含四类链接的示例,方便你直接点「提取链接」看效果。
  2. 默认勾选「包含裸 www. 链接」,这样微信里常见的「www.xxx.com」也能抓到;取消勾选则只认 http/https 标准链接。
  3. 如果你怀疑链接里的中文或空格被编码成了百分号形式,勾选「解码百分号编码」,工具会对每条链接尝试解码,例如 %E4%B8%AD 还原成「中」。
  4. 点「提取链接」,或在文本框按 Ctrl + Enter(Mac 上 Cmd + Enter);上方三张卡给出总数、去重数、域名数,结果区按出现顺序列出去重后的链接。
  5. 下方是按域名统计的出现次数表,默认前 12 行,点「加载更多」展开全部;「复制域名表」复制其 TSV,「导出 CSV」存成带 BOM 的文件。
  6. 「复制列表」把去重后的链接清单直接复制到剪贴板,可整段粘进表格或文档做外链审计。

这个工具能解决什么问题

它的存在是因为链接常常混在大段文字里:聊天记录、需求文档、竞品调研、爬虫原始数据,里面夹着几十上百个网址,手动挑既慢又漏。把文本一次性粘进来,这类「从文本提取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 不应被抓。

这正好演示了去重、计数与解码三件事:重复链接被合并、命中次数被记下来、编码串被还原成可读文字。

常见链接形态对照

下表列出本工具会识别的几种链接形态与处理方式,均来自内置示例。

形态示例处理方式
标准 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解码后为 /中文

结果边界与适用说明

常见问题

为什么微信里复制的链接抓不到?

因为微信常把链接写成 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 的合法结尾字符。若你的文本里链接与标点之间本就有空格,则标点自然留在外面。

这个工具免费吗?数据安全吗?

免费,无需注册。所有提取与统计都在当前浏览器本地完成,文本不会上传服务器,刷新页面后输入框内容也不会被保存。

相关工具