如何复制网页上的所有链接
2026年10月18日 · 阅读约 4 分钟
简短回答
Chrome 没有一个可以复制页面上所有链接的菜单项。你可以在 DevTools 控制台里运行一行代码来收集它们,或者在页面上添加一个小工具,用一个按钮复制所有链接,每行一个,并去除重复。
为什么需要所有链接
收集链接是一件出人意料地常见的事。你可能想要阅读列表里的每篇文章、下载目录里的每个文件、某个分类下的每件商品,或者网站导航里的每个页面,用来检查失效链接。用右键点击再选复制链接地址一个个复制,五个链接还行,两百个就是折磨。
自带的方法
Chrome 没有「复制所有链接」的命令。它可以用另存为保存整个页面,保存下来的 HTML 里包含所有链接,但你还得自己从文件里把它们挖出来。
手动的方法
Chrome 的开发者工具可以替你收集链接,用它也不需要会编程:
- 在页面上按 F12(Mac 上按 Cmd+Option+J),打开控制台(Console)标签页。
- 粘贴下面这一行,然后按回车。
copy([...new Set([...document.querySelectorAll("a[href]")].map((a) => a.href))].join("\n"))
- 现在页面上的所有链接都在你的剪贴板里了,每行一个。把它们粘贴到文本文件或电子表格中即可。
这一行做的事,用文字来说就是:找到页面上所有的链接元素,取出每一个的完整地址,去掉重复的,用换行符连起来,再复制结果。copy 函数只存在于 DevTools 控制台中,所以在其他任何地方都不起作用。
有两点需要知道。第一次往控制台粘贴内容时,Chrome 可能会要求你输入一句确认短语,防止有人被骗去运行有害代码。这是个好习惯:只粘贴你看得懂的代码,比如上面这一行。另外,这一行只能看到当时页面上已有的链接。对于滚动时会继续加载的页面,先滚动到底部。
用工具一劳永逸
如果你经常从同一个网站收集链接,页面上的一个按钮比每次打开控制台方便得多。用户脚本是一小段在你指定网站上运行的 JavaScript。添加复制链接按钮的脚本,在点击时做的事和控制台那一行一样,而且可以更聪明:它可以跳过网站菜单和页脚里的链接,只保留主列表中的链接,或者按类型筛选,比如只要 PDF 文件。
ScriptPanda 是一个 Chrome 扩展程序,可以根据简单的描述构建这样的工具。在页面上打开它的侧边栏,粘贴本指南末尾的请求,它就会编写这个工具并安装到该页面上。它能看到页面的结构,所以你可以用日常语言描述你要的是哪些链接,比如「只要搜索结果里的链接」或「只要指向商品页面的链接」。
复制链接不调用 AI,所以使用按钮不会消耗你套餐里的请求。构建和修改工具才会消耗。
后续可以尝试的想法:
- 连同链接文字一起复制,做成 Markdown 列表。
- 复制前先显示链接数量。
- 把链接下载为文本文件,而不是复制。
需要的不只是链接时
如果你想把每一项的标题、链接和价格作为电子表格的列,导出 CSV 更合适。相关指南会为任何列表添加一个导出 CSV 按钮。
局限
按钮复制的是你点击时页面上已有的链接。它不能顺着链接到其他页面去收集那些页面的链接,也不会定时运行。只有在滚动后或点击「加载更多」后才出现的链接,要等加载出来之后才会被包含。有些网站用脚本生成链接,而不是用普通的链接元素,这些链接可能会被漏掉,这时告诉 ScriptPanda 缺了什么,让它修复工具。如果网站改了布局,也是同样的办法。
用 ScriptPanda 完成
一条请求就能做好
在这个页面上添加一个按钮,把页面上的所有链接复制到我的剪贴板,每行一个网址,去除重复。
- 1把 ScriptPanda 添加到 Chrome。
- 2在想要修改的网站上打开侧边栏。
- 3粘贴这条请求并发送,ScriptPanda 会把工具直接做进页面。