提取链接
提取链接,是指从一段文字里提取所有网址,把 Markdown 或网页源码里的链接一次全抓出来,并顺手去重、按域名筛选。中文正文里 https://a.com/x。 结尾的句号、(链接)外的全角括号会自动剥掉,维基那种自带括号的网址不剥坏;不带 http 的 www.a.com 也认,共 13 种链接类型、9 种抽取来源。在小鹿tools,在线提取链接在浏览器本地完成、文本不上传,也不访问这些链接。
粘进来就能用:中文句号、全角括号会自动剥掉,www.a.com 这类裸域名也认。原文一个字都不会被改动,本工具也不会去访问这些链接。
这一项不会被记住——它可能是内网地址,本地只保存勾选偏好。
🔒 扫描、去重与统计全部在你的浏览器本地用 JS 完成,文本不上传任何服务器,关闭页面即清除;本地只 记住你的勾选偏好,不保存文本内容,也不保存「网站地址」。本工具只读不改原文: 上面输入框里的文字一个字都不会被改动,结果是新产生的一份链接清单。本工具也不会去访问提取出来的链接——不检测死链、不抓网页标题、不加载预览图, 所以你的私有链接不会泄露给任何一方。清单里的「网址」列显示的是解码后的可读值,复制与下载拿到的 始终是可直接使用的原样链接。
如何使用提取链接
粘贴文字,或拖入 .txt / .md / .html / .htm / .csv / .log / .json / .srt / .xml 等纯文本文件(单文件 10 MB 以内,按 UTF-8 读取)。想提取整个网页里的链接,就在浏览器里按 Ctrl+U 打开网页源代码、全选复制再粘进来,模式会自动切到「HTML 源码」并显示判定结果,判错了可以一键改。
选一个预设(提取全部链接 / 只要网址 / 只要域名清单 / 提图片链接 / 清洗链接 / 导出 Markdown 链接 / 只要外链),或者手动勾选 13 种链接类型与 9 种抽取来源。要把 /a/b.html 这类相对链接补成完整网址、或者分内链外链,就在「网站地址」里填上这个页面的地址。
看统计条与统计卡(总数、去重后、域名数、https 与 http 明文、图片 / 文档 / 音视频链接、mailto 与 tel),再按需要切换 9 种输出格式:每行一个、只要域名、自定义分隔符、Markdown 列表、HTML 超链接、按域名分组、七列 TSV、七列 CSV、JSON 数组,然后复制或下载(下载默认带 UTF-8 BOM)。对结果有疑问就看「没提出来的位置」表,每一处都写清了原因。
关于提取链接的常见问题
- 提取链接会不会上传文字和访问链接
- 都不会。扫描、剥离、去重与统计全部在你的浏览器里用 JavaScript 完成,文本不发送到任何服务器,关闭页面即清除;本地只记住你勾了哪些类型这类参数偏好,不保存文本内容,连你填的「网站地址」都不记(它可能是内网地址)。更重要的是,本工具不会去访问提取出来的任何一条链接:不检测死链、不抓网页标题、不展开短链、不加载预览图,所以你的私有链接不会因为用了这个页面而泄露给任何一方。本工具还是只读的,输入框里的原文一个字都不会被改动。
- 提取链接末尾多了个句号怎么办
- 复制的网址带了括号打不开、末尾多个句号点开就是 404,这两件事本工具已经处理好了,不用你手动删。中文正文里 https://a.com/x。 结尾的句号、(https://a.com)外面那对全角括号、【链接】的方括号、结尾的引号和逗号都会被自动剥掉,而且是循环剥的,「)。」这种连着两个也能一次剥干净。同时维基百科那种链接本身带括号的 .../wiki/Foo_(bar) 会完整保留,判断依据是括号在候选串里配不配平:右括号比左括号多才剥。每条被剥掉了什么字符,清单里都挂着「已剥尾」角标,鼠标悬停就能看到原样,不会偷偷改坏你的链接。
- 网页源码提取链接怎么提取全部 URL
- 本页不能直接输入网址去抓网页——纯前端加上浏览器的跨域限制根本做不到,而且那等于代你去访问别人的站点。要提取网页里的所有 url,正确做法是:在浏览器里按 Ctrl+U(或右键「查看网页源代码」),全选复制,粘进本页。模式会自动切到「HTML 源码」,<a href>、<img src>、srcset 多倍图、CSS 的 url() 与 @import、form action、video poster 里的链接都会被提出来,锚文本也一并抓取。html 提取所有链接时这 8 种来源默认全勾着,只有 meta 标签里的 og:image、canonical 因为模板噪音太多默认关闭。想只要图片就点「提图片链接」预设,想只要站外链接就填上网站地址后点「只要外链」。
- 公众号文章提取链接怎么批量提出来
- 整段复制粘进来就行,不用一条条点开复制,几十条也是一次批量提取链接。微信正文里的链接几乎都带着中文标点,详情见 https://a.com/x。 结尾的句号、(https://a.com)外面那对全角括号都会被剥掉;公众号里常见的 mp.weixin.qq.com/s/xxxx 短文链、群聊里别人手打的 www.a.com 这类不带 http 的写法也认得,聊天记录批量提取网址走的也是这条路径。同一条链接在一篇文章里出现三五次很常见,结果默认已经按归一化后的网址去重,并标出每条出现了几次。想把分享链接后面那串 ?share_source=…&share_token=… 剪掉再转发,点「清洗链接」预设即可。整个过程在手机或电脑的浏览器本地完成,聊天记录不会上传。
- Word 里的链接怎么批量提取出来
- 本页不解析 .docx 二进制文件,直接把 Word 文件拖进来是读不出内容的。可行的路径有两条:一是先用 Word 转 HTML 把文档转成 HTML,再把 HTML 粘进本页,模式会自动切到「HTML 源码」,所有 a 标签的 href 与锚文本都会被完整抽出来,还能一起拿到 img 的 src;二是在 Word 里全选正文复制,直接粘进本页的纯文本框——这样能提到正文里写出来的网址,但「点击这里」这种把网址藏在超链接后面、正文只显示文字的情况提不到,必须走转 HTML 那条路。Excel 与 PDF 同理,全选复制正文粘过来即可。
- 不带 http 的 example.com 能提取链接吗
- 能。www.a.com、taobao.com/item?id=1 这类裸域名默认识别,并可自动补上 https:// 变成能直接点开的网址,原样值仍然保留在「原文」列里。同时 main.js、README.md、src/index.ts、v1.2.3、3.14 这些不会被误认成网址:判定要求末段是已知域名后缀,而像 .js、.py、.io、.me、.ts 这种既是后缀又常是文件扩展名的,还得带 www. 前缀、后面跟着路径或端口才认。这是刻意的取舍——宁可漏认冷门后缀(你加个 https:// 就行),也不让清单里全是噪音。
- 提取链接能去掉 utm 这类跟踪参数吗
- 能。去掉 utm 参数一步到位:点「清洗链接」预设,也可以只打开「去掉跟踪参数」这一个开关。去掉链接跟踪参数不影响页面本身能不能打开,它们只用来告诉网站你从哪来。除了 utm_source、utm_medium、gclid、fbclid、msclkid 这些国际通用参数,还覆盖淘宝的 spm、B 站的 vd_source、小红书与抖音的 share_source 和 share_token 等中文平台专属参数,并且支持 utm_ 这类前缀整族删除。清洗链接参数是提取之后才做的一步:去掉了哪些参数会逐条列出来给你核对,去干净之后也不会留下一个光秃秃的问号。原始链接一直保留着,勾上「输出原样值」随时能切回去。要注意带签名的链接不要开「query 参数按名排序」,排序会让签名失效,页面上也有这条提醒。
- 提取链接能抓到 srcset 和 CSS 里的图片吗
- 都能。srcset="a.jpg 1x, b.jpg 2x" 会按逗号拆成两条,并各自标出 1x / 2x / 800w 描述符,而不是只取第一个;CSS 的 url(...)(带不带引号都行)和 @import 也在抽取范围里;href="a?x=1&y=2" 里的 HTML 实体会先解码成 & 再输出,否则你复制走的是一条打不开的链接。九种抽取来源可以单独勾选,其中 <meta> 内容默认关闭,因为模板噪音太多,需要 og:image 或 canonical 时勾上即可。
- 相对路径提取链接怎么补成完整网址
- 能。在「网站地址」里填上这个页面的地址(例如 https://example.com/news/),/a/b.html、../x.png、./index.htm 以及 //cdn.a.com/x.js 这类协议相对链接都会被补成绝对网址,清单里会挂上「已改写」角标,悬停就能看到「已用「网站地址」补成绝对网址」。没填的话它们会原样保留,页面会提示「有 N 个相对链接,填写上方「网站地址」后可自动补成完整网址」,不会悄悄丢掉。填了网站地址之后还能按内链、外链筛选,同站判定可以选按主域名(m.a.com 与 a.com 算同站)或按完整域名两档。
- 提取链接后去重和按域名筛选怎么做
- 默认就按归一化后的网址去重,并显示每条出现了几次:HTTPS://A.com/ 和 https://a.com 会算作同一条(协议名与域名大小写不敏感),但 http:// 和 https:// 不会合并,因为那确实是两个地址。去重口径还可以改成按原文片段或只按域名。还能按域名包含或排除(支持 *.a.com 通配,通配是含自身的)、按关键词包含或排除、只要图片 / 文档 / 音视频 / 压缩包 / 网页链接、每个域名最多取 N 条;要的是提取域名列表、只要域名不要路径,就点「只要域名清单」预设:按域名去重再按出现次数排序,直接得到一份域名榜。这些整理步骤的施加顺序是固定的:先按类别筛,再按内容筛,然后去重,接着施加每域名上限,最后排序。
- 提取链接和用正则查找替换有什么区别
- 用 https?://\S+ 这样的正则五分钟就能写完,但真实文本里处处是坑:句号括号会被吃进去、www.a.com 会整条漏掉、[标题](网址) 的右括号会被吞、HTML 实体没解码、srcset 只取到第一个、data: 内联图片几百 KB 整段灌进结果、javascript:void(0) 混进清单,而且这些错误不会报错,只是悄悄给你一份坏清单。本页把这些判断做成勾选项,并把每一处「为什么没提出来」都列出来。如果你本来就会写正则、要的是完全自定义的抽取规则,用正则测试更合适;要把链接从原文里删掉或替换掉,用批量查找替换——本工具只读不改原文。
- 提取链接会提 data 和 javascript 伪链接吗
- 默认都跳过,并且会明确告诉你跳过了几个、data: 内容合计多大。原因很实在:一张内联的 base64 图片动辄几百 KB,几十个塞进结果就能把页面撑死;而 javascript:void(0) 是「看起来是链接其实不是」的头号来源,混进清单只会添乱。默认跳过时,「没提出来的位置」里只留开头 80 个字符的片段,不会把几百 KB 的 base64 灌进表格;确实需要就在「链接类型」里勾上,勾上之后提出来的是完整内容,一条几百 KB 的 base64 会把清单撑得很高、下载文件也会变大,用完建议再关掉。另外用 HTML 输出格式时,这两类会被强制降级成纯文本,绝不会生成一个可点的 javascript: 超链接——你很可能把输出直接贴进自己的网页。
- 提取链接时中文域名和 xn-- 怎么显示
- https://中国.cn/首页 能正常识别;实际输出的链接里主机是 xn--fiqs8s.cn、中文路径是百分号编码,这是浏览器地址栏里真正生效的形式。清单的「网址」列显示的是解码后的可读值(xn--fiqs8s.cn 显示成 中国.cn,%E4%B8%AD 显示成中文),方便你核对,但复制和下载拿到的始终是可直接使用的原样链接,两者永远分得清清楚楚。看到「国际化域名」标记时建议多看一眼域名——长得像中文品牌的国际化域名有时并不是你以为的那个站。本工具只做这一条中性提醒,不做钓鱼判定。
- 提取链接能检测哪些是失效的死链吗
- 不能,而且这是刻意的,不是没做完。检测死链必须逐条去访问这些网址:要么让服务器代抓,那你的链接就上传了;要么在浏览器里直接请求,那会被跨域限制挡住,还会把访问记录留在对方服务器上。本页只负责准确地把链接提出来,一次网络请求都不发。想查可用性,请把清单导出后用你自己信任的工具去检测。同理,本页也不抓网页标题、不展开短链、不查 IP 归属、不判断是否为钓鱼站。
- 提取链接免费吗有没有字数限制
- 完全免费,不用注册、不用下载软件,也不加水印,13 种链接类型、9 种来源、7 个预设、链接清洗与「没提出来的位置」这些功能都不分免费版付费版。原因很实在:提取全部由你自己的浏览器算完,站点不承担计算成本。限制只来自浏览器性能:建议单个文件 10 MB、单次 500 万字以内,超过 20 万字后不再边打边出结果,改成点「开始提取」再分片计算,带进度、可以随时取消,触到上限时页面会明确写出已处理到哪里。结果清单默认展开前 20 条、「没提出来的位置」记录前 500 处,复制与下载拿到的都是完整数据。
- 提取链接支持哪些文件格式
- 直接粘贴文字是最省事的路径,不受文件格式限制;要拖文件的话,支持 .txt、.md、.html、.htm、.csv、.log、.json、.srt、.xml 这些纯文本文件,单个文件 10 MB 以内,一律按 UTF-8 读取,遇到 GBK 或被改了扩展名的二进制文件会明确提示「该文件不是 UTF-8 纯文本,请另存为 UTF-8 后重试」,而不是给你一堆乱码。.docx、.xlsx、.pdf 这类二进制文档本页不解析:Word 文档请先用 Word 转 HTML 转成 HTML 再粘进来,超链接的 href 与锚文本都在;PDF 与 Excel 直接全选复制正文粘过来就行,链接照样能提。
- 提取链接结果导出 Excel 会乱码吗
- 不会。下载的 .csv 与 .txt 默认带 UTF-8 BOM,用 Excel 或 Windows 记事本直接打开中文不乱码,也可以在结果区关掉「下载文件带 UTF-8 BOM」这个开关给程序读。CSV 与 TSV 都是七列:网址、类型、域名、锚文本或来源、出现次数、行:列、上下文,粘进 Excel 就能分列做筛选与透视,接着用 CSV 转 Excel 存成 xlsx 更好继续做表。以 =、+、-、@ 开头的单元格会做公式注入防护,Excel 打开时不会把一条链接当公式执行。
- 手机上怎么提取链接不用装 App
- 能,用手机浏览器打开本页粘贴文字就能提,不用装 App、不用注册,提取同样在手机本地完成、文字不上传。移动端做过适配:7 个预设按钮会自动换行排开,13 个类型勾选框与统计卡在窄屏下一行一项铺满,长网址会折行显示而不会把表格撑破,结果清单与「没提出来的位置」都可以横向滚动看完各列。从微信文章、群聊记录、备忘录里复制过来的一大段文字,正好用默认的「提取全部链接」预设一次把网址都捞出来。
提取链接支持哪些链接写法:13 种类型完整对照表
下面这张表和页面的提取实现共用同一份数据,看到什么就一定按什么提。 每一种类型都能单独勾选或关闭,关掉之后文本里的这类链接会进入「没提出来的位置」表并写明 「该链接类型未勾选」,而不是悄悄消失。
| 类型 | 例子 | 说明 | 默认 |
|---|---|---|---|
| 网址 | https://a.com/x | http 与 https 开头的完整网址,是绝对主力;明文 http 数会单独统计出来 | ✔ 勾选 |
| 裸域名 | www.a.com/x | 不带协议的网址,按 7 条规则判定(末段须是已知域名后缀),输出时可自动补 https:// | ✔ 勾选 |
| 协议相对链接 | //cdn.a.com/x.js | 省略协议的链接,网页源码里很常见;填了「网站地址」后按其协议补全 | ✔ 勾选 |
| 相对链接 | /a/b.html | 只在 HTML / Markdown 结构里抽取;填了「网站地址」才能补成绝对网址,没填则原样保留并标注 | ✔ 勾选 |
| 页内锚点 | #section-2 | 只跳当前页的锚点,绝大多数场景是噪音,所以默认不提 | ✘ 关闭 |
| 邮件链接 | mailto:hi@a.cn | 协议形式的邮箱链接,会把邮箱地址单独拆出来一列;正文里的裸邮箱默认不提 | ✔ 勾选 |
| 电话短信链接 | tel:+8613800138000 | tel: / sms: / callto: 这类拨号链接,号码会拆出来单列一列 | ✔ 勾选 |
| FTP 链接 | ftp://a.com/x.zip | ftp / ftps / sftp 文件传输链接 | ✔ 勾选 |
| 本地文件链接 | file:///C:/a/b.txt | 指向本机路径的链接,从 Word、聊天记录里复制过来时常见 | ✔ 勾选 |
| 磁力与下载链接 | magnet:?xt=urn:btih:abc | magnet / ed2k / thunder,中文站很常见 | ✔ 勾选 |
| App 唤起链接 | weixin://dl/chat | 自定义 scheme 的唤端链接,按「合法 scheme + ://」通用识别,不写死清单 | ✔ 勾选 |
| data: 内联内容 | data:image/png;base64,iVBOR… | 把图片直接写进网页的内联数据,动辄几百 KB,默认跳过并告诉你跳过了多少 | ✘ 关闭 |
| javascript: 伪链接 | javascript:void(0) | 「看起来是链接其实不是」的头号来源,默认跳过并计数 | ✘ 关闭 |
提取链接时网址藏在网页源码的哪些位置
纯文本模式只扫正文里直接写出来的裸链;切到 HTML 源码或 Markdown 模式后,下面这些结构化位置 也会被抽取,并且结构化优先——同一段字符已经被 href="…" 吃掉,就不会再作为裸链重复产出一条。
| 来源 | 例子 | 覆盖范围 | 默认 |
|---|---|---|---|
| 正文裸链 | 见 https://a.com | 直接写在正文里的网址 | ✔ 勾选 |
| 超链接 href | <a href="https://a.com"> | <a> <link> <area> <base> 的 href 属性,同时抓锚文本 | ✔ 勾选 |
| 资源 src | <img src="a.png"> | <img> <script> <iframe> <video> <audio> <source> <embed> <track> 的 src | ✔ 勾选 |
| 多倍图 srcset | <img srcset="a.jpg 1x, b.jpg 2x"> | 逗号分隔的多候选逐条拆开,并标出 1x / 2x / 800w 描述符 | ✔ 勾选 |
| 其他属性 | <form action="/s"> | form action、object data、video poster、blockquote cite、use xlink:href | ✔ 勾选 |
| CSS url() | background:url(a.png) | CSS 的 url(...)(引号可有可无)与 @import | ✔ 勾选 |
| Markdown 行内链接 | [文字](https://a.com) | [文字](网址)、、<https://a.com> 自动链接 | ✔ 勾选 |
| Markdown 引用式 | [1]: https://a.com | 行首的 [id]: 网址 "标题" 引用式定义 | ✔ 勾选 |
| <meta> 内容 | <meta content="https://a.com"> | og:image、canonical 这类模板噪音多,默认不提,勾上才提 | ✘ 关闭 |
提取链接默认不提哪些位置的网址:五条排除规则
| 规则 | 例子 | 默认 | 说明 |
|---|---|---|---|
| 代码块里的链接不提 | ``` https://a.com ``` | ✘ 关闭 | 默认关:教程、README 里的示例链接往往正是你要提的 |
| HTML 注释里的链接不提 | <!-- https://old.com --> | ✔ 开启 | 默认开:注释里多是被下线的旧链接 |
| 正文裸邮箱不提 | hi@a.cn | ✔ 开启 | 默认开:提邮箱是「提取邮箱」的活;mailto: 链接不受这条影响 |
| 裸 IP 不当链接 | 192.168.1.1 | ✔ 开启 | 默认开:裸 IP 更可能是一段 IP 文本;http://192.168.1.1/x 不受影响 |
| 本机地址不提 | http://localhost:3000 | ✘ 关闭 | 默认关:调试时正需要它们;开启后 localhost / 127.0.0.1 / *.local 一律跳过 |
无论因为哪条规则、哪个未勾选的类型、还是哪个筛选条件而没提, 页面都会在「没提出来的位置」表里列出行列号、原文片段和人话原因 (超过 500 处时逐条记录前 500 处,总处数照样写在标题上)。 这张表默认就是展开的,因为静默漏抽等于工具坏了—— 用户抱怨「我的链接怎么没提出来」时,答案必须在页面上。
提取链接和网址提取工具是一回事吗
是同一件事,只是叫法不同:搜「提取链接」「提取网址」「URL 提取」的人要的都是同一个结果—— 把文字里的网址挑出来排成一列。但不同叫法背后的工具形态差别很大, 尤其带「器」字的那一类,往往指要安装的软件、浏览器插件,或者会自己联网去抓取的采集器。 下面把常见叫法对到本页的具体做法,省得你再找一遍。
| 叫法 | 这个词通常指什么 | 在本页对应哪一步 |
|---|---|---|
| 在线提取链接 / 网址提取工具 | 中性的通称,泛指打开网页就能用、不用装东西的那一类。 | 本页就属于这一类:打开即用,不注册、不下载。 |
| 链接提取器 / 一键提取链接 | 带「器」字的多半指要安装的软件或浏览器插件,不少还会自己去访问网站抓取。 | 本页只读你粘进来的文字,不读你正在浏览的页面;一键提取链接对应的是 7 个预设,点一下换一整套参数。 |
| 文本提取链接 / 从文字中提取链接 | 强调输入是一段纯文本,而不是 Word、PDF 这类文件。 | 默认的纯文本模式;二进制文档要先转成文字再粘进来。 |
| 从一段文字里提取所有网址 | 问的是操作而不是工具名:一整段丢进去,网址自己列出来。 | 粘贴、选预设、复制或下载,三步。 |
| 批量提取网址 / 批量提取网址工具 | 强调一次几十上百条,而不是一条条手动复制。 | 一次粘一整篇,几万字也是同一套流程,字数上限见下面的常见问题。 |
| URL 提取 / 提取全部 URL | URL 就是网址的英文说法,指的是同一件事。 | 对应「提取全部链接」预设,13 种类型全勾上。 |
| 网页源码提取链接 / html 提取所有链接 | 输入是 HTML 源代码,要的是 href、src 这些属性里的地址。 | 按 Ctrl+U 复制源码粘进来,模式自动切到「HTML 源码」。 |
| markdown 提取链接 | 输入是 .md 文件或笔记原文。 | Markdown 模式,认 [文字](网址)、图片语法与行首的 [1]: 引用式定义。 |
| 提取超链接 / 提取 a 标签 href / 提取 src 链接 | 说的是网页里的结构化位置,而不是正文里直接写出来的裸链。 | 对应上面 9 种抽取来源里的「超链接 href」与「资源 src」,可以单独勾选。 |
| link extractor / url extractor online | 英文语境的通称。海外同类在线工具不少是「你填个网址、服务器替你去抓」,本质是采集器。 | 本页在你自己的浏览器里跑,一次网络请求都不发。 |
| extract links from text / extract all urls / get all links from html | 三种说法分别强调:输入是纯文本、要的是全部、输入是 HTML。 | 分别对应纯文本模式、「提取全部链接」预设与「HTML 源码」模式。 |
提取链接能提 mailto 和磁力链接吗
能,而且默认就开着。提取 mailto 链接时,mailto:hi@a.cn 会被当成一条链接收下来,里面的邮箱地址还会单拆一列;正文里没写 mailto: 的裸邮箱默认不提,那是提取邮箱的活。 提取磁力链接同理:magnet:、ed2k:、thunder: 归在「磁力与下载链接」这一类,中文资源站里很常见。weixin:// 这类唤起 App 的链接按「合法 scheme 加 ://」通用识别、不写死清单, 所以新出来的 App 协议也认得;tel:、ftp://、file:/// 各占一类,都能单独关掉。
提取链接为什么不能直接用 https?://\S+ 正则
很多人第一反应是拿 https?://\S+ 在编辑器里全局匹配,或者用批量查找替换手搓一个规则。 问题是真实文本里的链接几乎从不是「一串连续的非空白字符」,下面十条是最常见的翻车现场:
| 原文 | 裸 \S+ 的结果 | 本工具的结果 |
|---|---|---|
见 https://a.com/x。 | https://a.com/x。(句号被吃进去,点开 404) | https://a.com/x,并标出剥掉了「。」 |
(https://a.com/x) | https://a.com/x)(全角右括号跟着走) | https://a.com/x(括号配平判断后剥掉) |
.../wiki/Foo_(bar) | 要么整条不剥、要么把 (bar) 一起剥坏 | 完整保留 (bar)——括号在串内是配平的 |
www.a.com/x | 完全漏掉(没有 http 开头) | 认成裸域名,可自动补 https:// |
访问https://a.com看看 | https://a.com看看(把汉字吃进域名) | https://a.com(顶级域后遇中文即截断) |
href="a?x=1&y=2" | a?x=1&y=2(HTML 实体没解码) | a?x=1&y=2(实体解码后才是真链接) |
srcset="a.jpg 1x, b.jpg 2x" | 只取到第一个,或把 1x 也当成网址 | 拆成两条,并各自标出 1x / 2x |
data:image/png;base64,… | 几百 KB 的内联图片整段灌进结果 | 默认跳过并告诉你跳过了几个、合计多大 |
javascript:void(0) | 混进链接清单 | 默认跳过并计数,HTML 输出里降级为纯文本 |
同一条链接出现十几次 | 原样重复十几行 | 按归一化网址去重,并给出出现次数 |
这些坑最麻烦的地方不是难修,而是修错了不会报错: 正则照样跑完、照样吐出一列链接,只是其中几条点开是 404、几条压根没被提出来, 等到发现的时候已经不知道错在哪一步。本页把这些判断做成勾选项, 并把每一处「为什么没提出来」都摆出来,让结果可以逐条核对。
如果你本来就会写正则、要的是完全自定义的抽取规则,正则测试更合适; 要把链接从原文里删掉或替换成别的内容,用批量查找替换—— 本工具只读不改原文,永远不做回写。已经是一列现成网址、只想去掉重复的,用文本去重更轻; 但要注意它是逐字符比较的,认不出 HTTPS://A.com/ 与 https://a.com 是同一条,本页按归一化后的网址去重才行。
提取链接时边界是怎么判的:句号剥掉、括号不剥坏
「找到 http」不难,难的是判断这条链接到哪里结束。 中文正文里链接后面几乎总跟着标点,多带一个句号点开就是 404; 而维基百科那种链接本身带括号的,剥掉同样 404。本页按三步处理,每一步都有单元测试钉住:
- 无条件剥:句号、逗号、分号、冒号、感叹号、问号、省略号、引号、星号, 以及它们的全角形式,从右往左连续剥掉。注意点只在结尾剥,
a.com/a.b中间的点不会动。 - 配对剥:括号类符号只在候选串内不配平(右符号比左符号多)时才剥。覆盖半角
() [] {}与中文的() 【】 「」 『』 《》 〈〉以及中文引号。 - 循环执行直到不再变化,最多 8 轮。所以
见(https://a.com/x)。能一次剥干净「)。」两个字符。
| 原文 | 提取结果 | 为什么 |
|---|---|---|
见 https://a.com/x。 | https://a.com/x | 句号在 URL 里没有意义,无条件剥 |
见(https://a.com/x)。 | https://a.com/x | 循环剥两轮:先剥句号,再剥不配平的右括号 |
(https://a.com/x) | https://a.com/x | 串内右括号 1 个、左括号 0 个 → 不配平,剥 |
https://en.wikipedia.org/wiki/Foo_(bar) | 原样保留 | 左右括号各 1 个 → 配平,不剥 |
【https://a.com】 | https://a.com/ | 中文方括号同样按配对规则处理 |
https://a.com/a.b | 原样保留 | 点只在结尾剥,路径中间的点不动 |
访问https://a.com看看 | https://a.com/ | 顶级域 .com 之后紧跟汉字 → 在顶级域处截断 |
https://a.com/中文页面。 | https://a.com/中文页面 | 路径里允许中文,只剥掉结尾那个句号 |
https://a.com/中文页面看看 | 全部吃进路径 | 中文路径后面不留空格或标点时无法判定,本页如实说明这个局限 |
提取链接遇到中文路径不留空格为什么会多吃几个字
https://a.com/中文页面看看 这种「路径里有中文、后面紧跟中文正文、中间没有任何 标点或空格」的写法,在信息论上就是不可判定的——没有任何规则能分清 「看看」是路径的一部分还是下一句话的开头。本页的选择是全部吃进路径,并在这里说清楚:中文路径后面请留一个空格或标点。假装能猜对比说清楚更糟。 另一种情况有办法:访问https://a.com看看 里汉字紧跟在顶级域后面, 这时会在 .com 处截断,因为顶级域之后只可能是 / ? # : 或者结束。
提取链接时被换行截断的长网址要不要自动合并
从邮件或 PDF 里复制长链接时,链接常常被折成两行。本页默认不自动合并, 只统计并提示「有 N 处链接疑似被换行截断」;打开「合并被换行截断的链接」开关后才会拼接, 并且每条都会标上「已合并」让你核对。这是启发式判断——静默合并出一条拼错的链接却让你毫不知情, 比不合并糟糕得多。行尾的连字符 - 一律保留,因为它在 URL 里是合法字符。
还有一种常见情况:从 Word 或微信复制来的全角网址 https://a.com。本页会识别出来并提示,但不做转换—— 那是 全角半角转换 的活, 在这里顺手转会引入隐性改写。先转成半角再回来提取即可。
提取链接为什么 example.com 认、main.js 不认
不带协议的写法在中文互联网极其常见,不认就要漏掉一半;可认得太松,main.js、README.md、src/index.ts、v1.2.3、3.14 就全会变成「链接」,清单直接没法看。 本页要求下面这些条件同时满足才认成裸域名:
- 左右边界必须是非主机字符,所以「访问淘宝taobao.com」里的 taobao.com 也能认出来。
- 紧邻左侧是
/\.@时一律不认—— 那是路径或邮箱的一部分。 - 末段必须命中已知顶级域表(大小写不敏感,中文顶级域单独列)。
- 末段若同时是常见文件扩展名(
.sh .py .io .me .co .ts .md .zip .mov等), 还必须额外满足其一:有www.前缀、后面紧跟路径、或者后面紧跟端口号。 - 末段是纯数字一律不认,这一条同时挡掉了小数、版本号和裸 IP。
- 每段 1–63 个字符、只含字母数字与连字符(或者整段都是中文),不以连字符开头结尾,总长不超 253。
| 输入 | 判定 | 依据 |
|---|---|---|
taobao.com | ✔ 认 | 末段 .com 是已知顶级域,且不与文件扩展名冲突 |
www.a.com/x | ✔ 认 | www. 前缀是最强的域名信号 |
vercel.app/x | ✔ 认 | .app 是已知顶级域,后面还跟着路径 |
www.b.io / b.io/docs | ✔ 认 | .io 与扩展名冲突,但有 www. 前缀或后跟路径 |
b.io | ✘ 不认 | 冲突后缀且没有任何旁证——宁漏勿滥,你加个 https:// 就能提 |
main.js / README.md / src/index.ts | ✘ 不认 | 末段更像文件扩展名;且左边紧挨 / 或 . 时一律不认 |
3.14 / v1.2.3 | ✘ 不认 | 末段是纯数字,是小数或版本号 |
192.168.1.1 | ✘ 不认 | 裸 IP 更可能是一段 IP 文本;http://192.168.1.1/x 照常提取 |
a看看.com | ✘ 不认 | 一个 label 要么全是中文、要么全是字母数字,不能混写 |
这套规则的取舍是宁漏勿滥:漏认一个冷门新顶级域,你自己加个 https:// 就能提出来;而误认一次,整份清单里就会混进几十条 main.js 这样的假链接,你还得一条条挑出来。顶级域表按常见度整理, 这里也如实说明:它不是完整的 IANA 一千多个新 gTLD 列表, 同样地,内外链判定用的二级后缀表(com.cn、co.uk 这类) 也不是完整的 Public Suffix List。
另外要区分清楚:本页只提 mailto: 这类协议形式的邮箱链接,正文里的裸邮箱 a@b.com 默认不提(它会出现在「没提出来的位置」里, 写明这是邮箱地址)。要的就是这些邮箱,请用提取邮箱——那边把 mailto: 与正文裸地址一起提,还能还原 a [at] b [dot] com 这类防抓写法、配对姓名, 两边对「哪一段是网址」的口径共用同一份实现。tel: 链接同理:本页只把它当一条链接收着,要的是里面的号码本身请用提取手机号——那边把 tel:、data-phone 属性与正文里的号码一起提, 还会判号段运营商、按 E.164 去重、把锚文本当姓名配上。要提数字请用 提取数字——那边把网址当噪音排除,这边把网址当结果提取,两边对「哪一段是网址」的口径由交叉测试守着。
提取链接后怎么去掉 utm_source 和 spm 跟踪参数
提取完点「清洗链接」预设,或者单独打开「去掉跟踪参数」开关,utm_source、spm 这些参数就会被剥掉,并逐条列出改了什么。 从各种 App 里分享出来的链接后面常常拖着一长串参数,它们绝大多数是跟踪参数:只用来告诉网站「这个访客是从哪来的」, 去掉之后打开的还是同一个页面,但链接会短很多,也不会把你的来源信息一起传出去。 本页覆盖的常见跟踪参数:
- 国际通用:
utm_source、utm_medium、utm_campaign、utm_term、utm_content、gclid(Google 广告)、fbclid(Facebook)、msclkid、igshid。 - 中文平台专属(这是本页与国外同类工具最大的差别):淘宝天猫的
spm与scm、B 站的vd_source、 小红书与抖音的share_source、share_token、share_plat,以及各家通用的from、ref、sourceid。 - 前缀整族:
utm_、pd_rd_、_hs开头的参数会整族删掉,不用逐个列。
提取链接后什么情况不该清洗跟踪参数
带签名的链接(参数里有 sign、token、expires这类)不要开「query 参数按名排序」——排序会改变链接文本,签名校验就过不去了, 页面上勾选时也有这条提醒。带一次性凭证的分享链接同理,删参数前先自己点开确认一次。 另外「去掉末尾斜杠」也要留神:少数服务器会区分 /docs 与 /docs/, 去掉之后可能变成一次 301 跳转。
提取链接里 xn-- 开头的域名是什么意思
xn-- 是国际化域名(IDN)的 ASCII 表示形式。 域名系统底层只认字母数字与连字符,所以 中国.cn 在真正解析时会被编码成 xn--fiqs8s.cn。本页把它解码回中文显示,方便你核对, 但复制和下载拿到的仍然是可以直接使用的原样链接——raw 是原文真相、url 是可用真相、显示列只给人看, 这三者在本页永远分得清清楚楚。看到「国际化域名」标记时建议多看一眼, 因为长得像知名中文品牌的国际化域名不一定就是那个站。本页只做这一条中性提醒,不做钓鱼判定、不查黑名单,那超出了一个提取工具该有的能力边界。 要对单条网址做百分号编解码,请用 URL 编码解码。
提取链接归一化的 10 个开关分别改了什么
| 开关 | 效果 | 默认 | 说明 |
|---|---|---|---|
| 协议转小写 | HTTPS:// → https:// | ✔ 开启 | 协议名大小写不敏感,统一成小写便于去重 |
| 域名转小写 | A.com → a.com | ✔ 开启 | 域名大小写不敏感;路径一律不动,因为 Linux 服务器的路径是区分大小写的 |
| 裸域名补 https:// | www.a.com → https://www.a.com | ✔ 开启 | 让裸域名变成能直接点开的网址,原样值仍保留在「原文」列 |
| 去掉默认端口 | http://a.com:80 → http://a.com | ✔ 开启 | :80 之于 http、:443 之于 https 是默认端口,写不写都一样 |
| 路径百分号解码显示 | %E4%B8%AD → 中 | ✔ 开启 | 只作用于「显示」列,输出的链接永远是原样可用的值 |
| 国际化域名解码显示 | xn--fiqs8s.cn → 中国.cn | ✔ 开启 | 同样只作用于「显示」列,方便你核对到底是哪个站 |
| 去掉 #片段 | a.com/x#top → a.com/x | ✘ 关闭 | 锚点只影响页内定位,去掉后仍是同一个页面 |
| 去掉跟踪参数 | ?utm_source=wx&id=1 → ?id=1 | ✘ 关闭 | utm_*、gclid、fbclid,以及淘宝 spm、B 站 vd_source、小红书抖音 share_token 等中文平台参数 |
| query 参数按名排序 | ?b=2&a=1 → ?a=1&b=2 | ✘ 关闭 | 便于比对两条链接是不是同一个请求;排序参数会改变链接文本,带签名(sign / token)的链接可能因此失效 |
| 去掉末尾斜杠 | a.com/docs/ → a.com/docs | ✘ 关闭 | 仅当路径不是根路径时才去;少数服务器区分 /docs 与 /docs/,去掉后可能变成 301 跳转 |
有一条铁律贯穿全部开关:路径的大小写一律不动。 域名大小写不敏感,可以放心转小写;但 Linux 服务器上的路径是区分大小写的, 把 /Path 改成 /path 就可能变成 404。 每一项改写都会在清单里挂「已改写」角标,悬停能看到到底改了什么。
提取链接一般用来做什么:7 个真实场景
- 从微信文章、聊天记录里把网址都捞出来:整段复制粘进来就行。中文正文里 `详情见 https://a.com/x。` 结尾的句号、`(链接)` 外面那对全角括号都会自动剥掉,不带 http 的 www.a.com 也认得。提出来的清单默认已经去重,并标出每条出现了几次。
- 查看网页源代码后批量提取图片链接:在浏览器里按 Ctrl+U 打开网页源代码,全选复制粘进本页,模式会自动切到「HTML 源码」,然后点「提图片链接」预设:img 的 src、srcset 多倍图、CSS 里的 url() 都会被提出来,并按图片扩展名筛一遍。批量提取图片地址时把输出格式切到「每行一个」,拿到的就是一列干净的图片网址。
- README 与笔记里的链接盘点:Markdown 模式认得 [文字](网址)、、<https://a.com> 自动链接和行首的 [1]: 引用式定义,锚文本会一并抓出来。输出格式切到「Markdown 列表」就能直接搬回笔记里。
- 提取外链做外链盘点与域名统计:在「网站地址」里填上自己的站点,点「只要外链」预设,同站链接会被滤掉,剩下的按域名分组。切到「只要域名清单」还能拿到一份去重域名 + 出现次数,做外链盘点或竞品引用统计。把本页当外链盘点工具用时要记得:它只盘点你粘进来的这一篇,不会替你去爬整站。
- Word 文档里的超链接怎么批量提:本页不解析 .docx 二进制文件。正确做法是先用 Word 转 HTML 把文档转成 HTML,再把 HTML 粘进本页——所有 href 都会被完整抽出来,锚文本也在。
- 分享前清洗掉跟踪参数:点「清洗链接」预设,utm_source、gclid、fbclid 以及淘宝 spm、B 站 vd_source、小红书抖音 share_token 这些中文平台参数会被去掉,并逐条列出改了什么,原始链接一直保留着,随时能切回原样。
- 提取后导出 CSV 接着做表:输出格式切到「七列 TSV」可以直接粘进 Excel 分列(网址、类型、域名、锚文本、出现次数、行列位置、上下文),或者下载 UTF-8 带 BOM 的 CSV,再用 CSV 转 Excel 继续做透视与统计。
微信文章提取链接能提出多少条:一个算例
光说「都能提」没用,直接把下面这四行粘进本页,对着数一遍就知道每条规则在做什么:
双十一活动详情见 https://shop.example.com/act?id=8&utm_source=wx&spm=a1z10.3-c。
备用地址 www.example.com/act,图片在 https://img.example.cn/1.jpg。
(活动规则 https://shop.example.com/rule)合作请联系 hi@example.cn 或 mailto:pr@example.cn
再次提醒:https://shop.example.com/act?id=8&utm_source=wx&spm=a1z10.3-c 今晚 8 点开抢- 提出 6 条、去重后 5 条:第一行那条商品链接在第四行又出现一次, 两条归一化后完全相同,合并成一条并标「出现 2 次」。
- 剥掉 4 个尾部字符:第一、二行两个句号,第二行
/act后面的全角逗号,第三行/rule后面那个不配平的右括号—— 这四处都会挂上「已剥尾」角标,悬停能看到原样。 - 裸域名补协议:
www.example.com/act认成裸域名, 自动补成https://www.example.com/act,原样值留在「原文」列里。 - 跳过 1 处并写明原因:
hi@example.cn是正文里的裸邮箱,不是协议形式的链接,它会进「没提出来的位置」并注明是邮箱地址; 同一行的mailto:pr@example.cn带协议头,照常提取。 - 清洗后从 61 个字符缩到 33 个:点「清洗链接」预设,
&utm_source=wx&spm=a1z10.3-c被剪掉, 剩下https://shop.example.com/act?id=8,问号和id=8这个业务参数原样保留。
提出来的网址想逐条变成二维码,用 二维码生成(它是单条生成的,本页不做批量出图);结果导出后继续做表用CSV 转 Excel; 需要对单条网址做编码解码用 URL 编码解码; 全角网址先用 全角半角转换 转成半角再回来。
提取链接的 7 个一键预设分别提什么
七个预设用同一个示例串横向对比,点一下就是整套参数(类型勾选 + 来源 + 排除规则 + 整理选项 + 清洗开关),点完之后照样可以手动改任意一项,改了就变成「自定义」。示例串是:
详情见 https://shop.example.com/item?id=9&utm_source=wx(含图 https://img.a.cn/1.jpg)联系 mailto:hi@a.cn
| 预设 | 做什么 | 示例结果 | 典型场景 |
|---|---|---|---|
| 提取全部链接 | 全类型(data: 与 javascript: 伪链接、页内锚点除外)+ 全来源 + 按网址去重 + 原顺序 | 3 条:商品链接、图片链接、mailto | 通用抽取,不知道选什么就用它 |
| 只要网址 | 只留网址、裸域名、协议相对链接,裸域名补上 https://,按网址去重 | 2 条:商品链接、图片链接(mailto 被滤掉) | 拿一份能直接点开的网址清单 |
| 只要域名清单 | 按域名去重并统计出现次数,按次数从多到少排序 | 2 个域名:shop.example.com、img.a.cn | 看一篇文章都引了哪些站,做外链盘点 |
| 提图片链接 | 来源限 src / srcset / CSS url() / 正文裸链,并按图片扩展名筛 | 1 条:https://img.a.cn/1.jpg | 从网页源码里批量拿图片地址 |
| 清洗链接 | 去掉跟踪参数与 #片段、域名转小写、去掉默认端口,并逐条列出改了什么 | https://shop.example.com/item?id=9(已去掉 utm_source) | 分享前把 ?utm_source=... 的尾巴剪掉 |
| 导出 Markdown 链接 | 输出 - [锚文本](网址) 的 Markdown 列表,锚文本缺失时用域名兜底 | - [shop.example.com](https://shop.example.com/item?id=9…) | 把网页里的链接搬进笔记 |
| 只要外链 | 填上本站域名后排除同站链接,按域名分组排序 | 填 example.com 后只剩 https://img.a.cn/1.jpg | SEO 外链盘点 |
这样设计是因为真实需求从来不是「把所有链接都提出来」这一种, 而是「只要能点开的网址」「只要域名不要路径」「只要图片地址」「把跟踪参数剪掉再分享」 这类带条件的组合。