javascript:(async()=>{const sites=[];const status=document.createElement('div');status.style.cssText='position:fixed;top:10px;right:10px;background:#4f46e5;color:white;padding:20px;border-radius:8px;z-index:99999;font-family:sans-serif;font-size:14px;box-shadow:0 4px 12px rgba(0,0,0,0.3)';document.body.appendChild(status);const wait=ms=>new Promise(r=>setTimeout(r,ms));const parseNum=str=>{if(!str)return 0;str=str.toLowerCase().trim();const num=parseFloat(str);if(str.includes('k'))return Math.round(num1000);if(str.includes('m'))return Math.round(num1000000);return Math.round(num)||0};const waitForData=async()=>{for(let i=0;i<30;i++){const items=document.querySelectorAll('li[data-domain] b');if(items.length>0)return true;await wait(200)}return false};const extract=()=>{document.querySelectorAll('li[data-domain]').forEach(li=>{const domain=li.getAttribute('data-domain');const b=li.querySelector('b');const visitorText=b?b.textContent.trim():'0';const visitors=parseNum(visitorText);const pEl=li.querySelector('p.dark\:text-gray-100');let percent='0%',trend='',pctNum=0;if(pEl){const txt=pEl.textContent.trim();trend=txt.includes('↑')?'↑':txt.includes('↓')?'↓':'';percent=txt.replace(/[↑↓\s]/g,'');pctNum=parseInt(percent)||0}if(!sites.find(s=>s.domain===domain)){sites.push({domain,visitors,visitorText,percent,trend,pctNum})}})};let page=1;while(true){status.innerHTML=%60抓取第 ${page} 页... 共 ${sites.length} 个站点 | ${new Date().toLocaleString()}
已获取 ${sites.length} 个站点%60;await waitForData();await wait(1000);extract();const nextBtn=[...document.querySelectorAll('a.pagination-link')].find(a=>a.textContent.includes('Next')&&!a.classList.contains('inactive')&&!a.classList.contains('cursor-not-allowed'));if(!nextBtn)break;nextBtn.click();page++;await wait(1500)}status.textContent='生成表格...';const w=window.open('','blank');w.document.write(%60<!DOCTYPE html><meta charset="utf-8">📊 Plausible 站点排名 (24h)
<script>const data=${JSON.stringify(sites)};let sortCol='visitors',sortDir='desc';function render(list){const tbody=document.getElementById('tbody');tbody.innerHTML=list.map((s,i)=>\%60# 域名 访客数 ▼ 变化 统计 \%60).join('');document.getElementById('count').textContent=list.length}function sort(col,type){const th=document.querySelectorAll('th');th.forEach(t=>{t.classList.remove('asc','desc');t.textContent=t.textContent.replace(/ [▲▼]/g,'')});const header=[...th].find(t=>t.dataset.col===col);if(!header)return;if(sortCol===col){sortDir=sortDir==='asc'?'desc':'asc'}else{sortCol=col;sortDir=type==='num'?'desc':'asc'}header.classList.add(sortDir);data.sort((a,b)=>{let av,bv;if(col==='rank')return 0;if(col==='domain'){av=a.domain;bv=b.domain}else if(col==='visitors'){av=a.visitors;bv=b.visitors}else{av=a.pctNum;bv=b.pctNum}if(type==='str'){return sortDir==='asc'?av.localeCompare(bv):bv.localeCompare(av)}return sortDir==='asc'?av-bv:bv-av});filter()}function filter(){const q=document.getElementById('search').value.toLowerCase();const list=data.filter(s=>s.domain.toLowerCase().includes(q));render(list)}document.querySelectorAll('th[data-col]').forEach(th=>{th.onclick=()=>sort(th.dataset.col,th.dataset.type)});document.getElementById('search').oninput=filter;data.sort((a,b)=>b.visitors-a.visitors);render(data);function exportCSV(){const q=document.getElementById('search').value.toLowerCase();const list=data.filter(s=>s.domain.includes(q));const rows=[['排名','域名','访客数','变化','Plausible链接']];list.forEach((s,i)=>rows.push([i+1,s.domain,s.visitors,s.trend+s.percent,'https://click.pageview.click/'+s.domain]));const csv='\ufeff'+rows.map(r=>r.join(',')).join('\n');const blob=new Blob([csv],{type:'text/csv;charset=utf-8'});const a=document.createElement('a');a.href=URL.createObjectURL(blob);a.download='plausible${new Date().toISOString().slice(0,10)}.csv';a.click()}<\/script>%60);w.document.close();status.remove()})();\${i+1} \${s.domain} \${s.visitors.toLocaleString()} \${s.trend}\${s.percent} 📈 Plausible
本文档为站内渲染。原始文件本地路径:saas/source/bookmarks-code/书签代码-plausible-2342af.md(仅本地保留,不入库不部署)