造码青年造码青年
安装网页珍藏
首页/工具中心/链接提取
🔖
标签脚本

链接提取

已上线

一键快速提取

一键抓取当前页全部链接,支持筛选、去重、复制 无需安装

无需扩展不用进应用商店,也不需要长期安装浏览器插件。
点击时运行只有在你打开目标网页并点击标签脚本时才执行。
适合当前网页适合做页面整理、信息提取、快捷处理这类轻量任务。
随时移除不想用了,直接从收藏/书签栏删除即可。

通用安装教程

  1. 1显示收藏/书签栏在 Chrome、Edge 等浏览器中打开收藏栏,确保拖拽目标区域可见。
  2. 2拖拽安装按住页面上的“拖拽安装”,拖到收藏/书签栏后松开。
  3. 3打开网页运行进入需要处理的网页,点击收藏/书签栏里的标签脚本。

标签脚本是浏览器原生支持的轻量入口,可拖拽安装,也可手动查看代码。

标签脚本代码
javascript:(function(){try{var O=document.querySelector("[data-zaoma-link-extract]");if(O){O.remove();return}function abs(u){try{return new URL(u,location.href).href}catch(e){return""}}function typ(url,el){var l=(url||"").toLowerCase(),t=(el&&el.tagName)||"";if(t==="IMG"||/\.(png|jpe?g|gif|webp|svg|ico|avif|bmp)(\?|#|$)/i.test(l))return"image";if(t==="SCRIPT"||/\.js(\?|#|$)/i.test(l))return"script";if(t==="LINK"||/\.css(\?|#|$)/i.test(l))return"style";if(/\.(mp4|webm|m3u8|mp3|wav|ogg|m4a)(\?|#|$)/i.test(l))return"media";if(/\.(pdf|zip|rar|7z|gz|tar|docx?|xlsx?|pptx?)(\?|#|$)/i.test(l))return"file";if(/^mailto:/i.test(l))return"mail";if(/^tel:/i.test(l))return"tel";if(/^javascript:/i.test(l)||l==="#"||l.indexOf("javascript:")===0)return"js";return"page"}var map=Object.create(null),items=[];function add(url,text,el){url=abs(String(url||"").trim());if(!url)return;if(map[url]){if(text&&!map[url].text)map[url].text=text;return}var t=typ(url,el);if(t==="js")return;var it={url:url,text:(text||"").replace(/\s+/g," ").trim().slice(0,120),type:t,host:""};try{it.host=new URL(url).hostname}catch(e){}map[url]=it;items.push(it)}Array.prototype.forEach.call(document.querySelectorAll("a[href]"),function(a){add(a.getAttribute("href"),a.innerText||a.getAttribute("title")||a.getAttribute("aria-label")||"",a)});Array.prototype.forEach.call(document.querySelectorAll("img[src],img[data-src],source[src],video[src],audio[src],script[src],link[href],iframe[src],embed[src],object[data],img[srcset],source[srcset]"),function(el){var u=el.getAttribute("src")||el.getAttribute("data-src")||el.getAttribute("href")||el.getAttribute("data")||"";if(!u){var ss=el.getAttribute("srcset")||"";if(ss)u=(ss.split(",")[0]||"").trim().split(/\s+/)[0]||""}add(u,el.getAttribute("alt")||el.getAttribute("title")||"",el)});Array.prototype.forEach.call(document.querySelectorAll("[data-url],[data-href],[data-link]"),function(el){add(el.getAttribute("data-url")||el.getAttribute("data-href")||el.getAttribute("data-link"),el.innerText||"",el)});items.sort(function(a,b){return a.type===b.type?(a.url<b.url?-1:1):(a.type<b.type?-1:1)});var TYPES=[{id:"all",label:"全部"},{id:"page",label:"页面"},{id:"image",label:"图片"},{id:"media",label:"媒体"},{id:"file",label:"文件"},{id:"script",label:"脚本"},{id:"style",label:"样式"},{id:"mail",label:"邮箱"},{id:"tel",label:"电话"}];var state={type:"all",q:"",onlySame:false};function filtered(){var q=state.q.toLowerCase();return items.filter(function(it){if(state.type!=="all"&&it.type!==state.type)return false;if(state.onlySame&&it.host!==location.hostname)return false;if(!q)return true;return it.url.toLowerCase().indexOf(q)>=0||(it.text&&it.text.toLowerCase().indexOf(q)>=0)||(it.host&&it.host.toLowerCase().indexOf(q)>=0)})}function esc(s){return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function copyText(text,tipEl,ok){text=String(text||"");function done(m){if(tipEl)tipEl.textContent=m}function fb(){try{var ta=document.createElement("textarea");ta.value=text;ta.style.cssText="position:fixed;left:-9999px;top:0";document.body.appendChild(ta);ta.select();document.execCommand("copy");document.body.removeChild(ta);done(ok||("已复制 "+text.split("\n").filter(Boolean).length+" 条"))}catch(e){done("复制失败")}}if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(text).then(function(){done(ok||("已复制 "+text.split("\n").filter(Boolean).length+" 条"))}).catch(fb);else fb()}var root=document.createElement("div");root.setAttribute("data-zaoma-link-extract","1");root.style.cssText="all:initial;position:fixed;inset:0;z-index:2147483646;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif";var mask=document.createElement("div");mask.style.cssText="position:absolute;inset:0;background:rgba(2,6,23,.55)";var panel=document.createElement("div");panel.style.cssText="position:absolute;left:50%;top:4vh;transform:translateX(-50%);width:min(720px,96vw);height:min(88vh,860px);display:flex;flex-direction:column;background:#0b1220;color:#e2e8f0;border:1px solid #1e293b;border-radius:16px;box-shadow:0 25px 60px rgba(0,0,0,.45);overflow:hidden";var head=document.createElement("div");head.style.cssText="padding:14px 16px;border-bottom:1px solid #1e293b;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0";head.innerHTML="<div><div style='font-size:15px;font-weight:700;color:#f8fafc'>🔗 网页链接提取</div><div style='font-size:12px;color:#64748b;margin-top:3px'>共 "+items.length+" 条 · "+esc(location.hostname)+"</div></div><button type='button' data-close style='border:0;background:#1e293b;color:#cbd5e1;border-radius:8px;padding:7px 12px;cursor:pointer;font-size:12px'>关闭</button>";var tools=document.createElement("div");tools.style.cssText="padding:10px 16px;border-bottom:1px solid #1e293b;display:flex;flex-direction:column;gap:10px;flex-shrink:0";var chips=document.createElement("div");chips.style.cssText="display:flex;flex-wrap:wrap;gap:6px";TYPES.forEach(function(t){var n=t.id==="all"?items.length:items.filter(function(x){return x.type===t.id}).length;if(t.id!=="all"&&n===0)return;var b=document.createElement("button");b.type="button";b.setAttribute("data-type",t.id);b.textContent=t.label+" "+n;b.style.cssText="border:1px solid #334155;background:#111827;color:#cbd5e1;border-radius:999px;padding:5px 10px;cursor:pointer;font-size:12px";chips.appendChild(b)});var row2=document.createElement("div");row2.style.cssText="display:flex;gap:8px;flex-wrap:wrap;align-items:center";row2.innerHTML="<input data-q type='search' placeholder='搜索链接 / 文本 / 域名…' style='flex:1;min-width:160px;padding:9px 12px;border-radius:10px;border:1px solid #334155;background:#0f172a;color:#e2e8f0;font-size:13px;outline:none'/><label style='display:flex;align-items:center;gap:6px;font-size:12px;color:#94a3b8;cursor:pointer;user-select:none'><input data-same type='checkbox' style='accent-color:#6366f1'/>仅本站</label>";var actions=document.createElement("div");actions.style.cssText="display:flex;gap:8px;flex-wrap:wrap;align-items:center";actions.innerHTML="<button type='button' data-copy-all style='border:0;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:10px;padding:9px 12px;cursor:pointer;font-size:12px;font-weight:600'>复制当前列表</button><button type='button' data-copy-md style='border:1px solid #334155;background:#111827;color:#e2e8f0;border-radius:10px;padding:9px 12px;cursor:pointer;font-size:12px;font-weight:600'>复制 Markdown</button><button type='button' data-copy-csv style='border:1px solid #334155;background:#111827;color:#e2e8f0;border-radius:10px;padding:9px 12px;cursor:pointer;font-size:12px;font-weight:600'>复制 CSV</button><span data-tip style='font-size:12px;color:#64748b'></span>";tools.appendChild(chips);tools.appendChild(row2);tools.appendChild(actions);var list=document.createElement("div");list.style.cssText="flex:1;overflow:auto;padding:8px 12px 16px";function paintChips(){Array.prototype.forEach.call(chips.querySelectorAll("[data-type]"),function(b){var on=b.getAttribute("data-type")===state.type;b.style.background=on?"linear-gradient(135deg,#6366f1,#8b5cf6)":"#111827";b.style.borderColor=on?"transparent":"#334155";b.style.color=on?"#fff":"#cbd5e1"})}function render(){var rows=filtered();var tip=actions.querySelector("[data-tip]");if(tip)tip.textContent="显示 "+rows.length+" / "+items.length;if(!rows.length){list.innerHTML="<div style='padding:40px 12px;text-align:center;color:#64748b;font-size:13px'>没有匹配的链接</div>";return}var html="";rows.forEach(function(it,i){html+="<div style='display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px;border:1px solid #1e293b;border-radius:12px;margin-bottom:8px;background:#0f172a'><span style='font-size:11px;font-weight:700;color:#a5b4fc;background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.25);padding:3px 8px;border-radius:999px;white-space:nowrap'>"+esc(it.type)+"</span><div style='min-width:0'>"+(it.text?"<div style='font-size:13px;color:#f1f5f9;font-weight:600;margin-bottom:4px;word-break:break-word'>"+esc(it.text)+"</div>":"")+"<a href='"+esc(it.url)+"' target='_blank' rel='noopener noreferrer' style='font-size:12px;color:#38bdf8;word-break:break-all;text-decoration:none;line-height:1.5'>"+esc(it.url)+"</a></div><button type='button' data-i='"+i+"' data-copy-one style='border:1px solid #334155;background:#111827;color:#cbd5e1;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:11px;white-space:nowrap'>复制</button></div>"});list.innerHTML=html;var cur=rows;Array.prototype.forEach.call(list.querySelectorAll("[data-copy-one]"),function(btn){btn.onclick=function(){var idx=+btn.getAttribute("data-i");if(cur[idx])copyText(cur[idx].url,actions.querySelector("[data-tip]"),"已复制 1 条")}})}function close(){try{root.remove()}catch(e){}}mask.onclick=close;head.querySelector("[data-close]").onclick=close;chips.onclick=function(e){var t=e.target.closest("[data-type]");if(!t)return;state.type=t.getAttribute("data-type");paintChips();render()};row2.querySelector("[data-q]").oninput=function(e){state.q=e.target.value||"";render()};row2.querySelector("[data-same]").onchange=function(e){state.onlySame=!!e.target.checked;render()};actions.querySelector("[data-copy-all]").onclick=function(){var rows=filtered();copyText(rows.map(function(x){return x.url}).join("\n"),actions.querySelector("[data-tip]"),"已复制 "+rows.length+" 条链接")};actions.querySelector("[data-copy-md]").onclick=function(){var rows=filtered();copyText(rows.map(function(x){return"- ["+(x.text||x.host||"link")+"]("+x.url+")"}).join("\n"),actions.querySelector("[data-tip]"),"已复制 Markdown "+rows.length+" 条")};actions.querySelector("[data-copy-csv]").onclick=function(){var rows=filtered();var lines=["type,text,url"].concat(rows.map(function(x){return JSON.stringify(x.type)+","+JSON.stringify(x.text||"")+","+JSON.stringify(x.url)}));copyText(lines.join("\n"),actions.querySelector("[data-tip]"),"已复制 CSV "+rows.length+" 条")};document.addEventListener("keydown",function onKey(e){if(e.key==="Escape"){close();document.removeEventListener("keydown",onKey)}});panel.appendChild(head);panel.appendChild(tools);panel.appendChild(list);root.appendChild(mask);root.appendChild(panel);document.documentElement.appendChild(root);paintChips();render()}catch(err){alert("链接提取失败: "+(err&&err.message?err.message:err))}})();