Skip to content

Instantly share code, notes, and snippets.

@chris-castillo-dev
Last active December 6, 2024 21:23
Show Gist options
  • Save chris-castillo-dev/180bb561b20753cb3a3d74d5eab0a5de to your computer and use it in GitHub Desktop.
Save chris-castillo-dev/180bb561b20753cb3a3d74d5eab0a5de to your computer and use it in GitHub Desktop.
javascript:!function(){function e(e){return[{tag:"span",textContent:"People also ask"}].some(t=>{let{tag:r,textContent:o}=t,l=e.querySelector(`${r}:not([hidden])`);return l&&l.textContent.trim()===o})}let t=document.getElementById("rso"),r=document.querySelectorAll("em"),o={};r.forEach(t=>{let r=t.closest("#rso > div");if(r&&e(r))return;let l=t.textContent.trim().toLowerCase();if(l){let n=l.split(",").map(e=>e.trim());n.forEach(e=>{e&&(o[e]=(o[e]||0)+1)})}});let l=[["Bolded Terms","Count"]];for(let[n,i]of Object.entries(o))l.push([n,i]);let a=[["URL","Position","Title","Description","Terms","Count"]];if(t){let s=Array.from(t.children),c=0;s.forEach(t=>{var r;if(e(t)||!(r=t).querySelector("a[href]")&&!r.querySelector("h3"))return;c++;let o=t.querySelector("a[href]");if(!o)return;let l=o.href,n=t.querySelector("h3")?.textContent.trim()||"",i=t.querySelector(".kb0PBd > .VwiC3b > span:not(.LEwnzc)")?.textContent.trim()||"",s=t.querySelectorAll("em"),u={};s.forEach(e=>{let t=e.textContent.trim().toLowerCase();if(t){let r=t.split(",").map(e=>e.trim());r.forEach(e=>{e&&(u[e]=(u[e]||0)+1)})}});let m=Object.keys(u).join(","),f=Object.values(u).reduce((e,t)=>e+t,0);a.push([l,c,n,i,m,f])})}let u=[["Terms Found"],...l,[],["Terms by Result"],...a].map(e=>e.join(";;")).join("\n");!function e(t){let r=document.createElement("textarea");r.value=t,document.body.appendChild(r),r.select(),document.execCommand("copy"),document.body.removeChild(r)}(u),alert('SERP Data is in your clipboard! (CSV Delimiter: ";;")')}();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment