-
Notifications
You must be signed in to change notification settings - Fork 0
/
scrapeCommentsBookmarklet.js
1 lines (1 loc) · 1.95 KB
/
scrapeCommentsBookmarklet.js
1
javascript:void function(){function a(a,b){var c,d;c=new Blob([a],{type:"text/csv"}),d=document.createElement("a"),d.download=b,d.href=window.URL.createObjectURL(c),d.style.display="none",document.body.appendChild(d),d.click()}async function b(a){return new Promise(function(b){setTimeout(b,a)})}async function c(){for(let c=0;3>c;c++){var a=document.querySelector(".comments-comments-list__load-more-comments-button");await e(),a.click(),console.log("Clicked to load more comments..."),await b(5e3),console.log("Loading more comments...")}console.log("Finished loading comments.")}function d(a){return a*(2-a)}async function e(a=1500,b=3e4){function c(){if(h)return;let b=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight),i=window.innerHeight,j=b-i,k=j-e;f+=g;let l=d(f/a);window.scrollTo(0,e+k*l),window.scrollY<j%26%26f<a%3FsetTimeout(c,g):window.scrollY<j%26%26(f=0,e=window.scrollY,setTimeout(c,g))}let e=window.scrollY,f=0;const g=50;let h=!1;setTimeout(()=>{h=!0},b),c()}function f(){return document.querySelector(".update-components-actor__container .update-components-actor__name .visually-hidden").innerText}function g(){return document.querySelector(".feed-shared-update-v2__description-wrapper").innerText.split("\n")[0].replaceAll(" ","-")}(async function(){await c();var b=document.querySelector(".feed-shared-update-v2__description-wrapper").innerText,d=document.querySelector(".feed-shared-update-v2__comments-container"),e=d.querySelectorAll(".comments-comment-item.comments-comments-list__comment-item"),h=[];h.push("fullName,n,c");for(let a=0;a<e.length;a++){var j=e[a].querySelectorAll(".comments-post-meta a")[1].innerText.split("\n")[0],k=e[a].querySelector(".comments-comment-item-content-body").innerText;k=k.replace(/,/g,";"),k=k.replace(/\n/g," "),k=k.replace(/"/g,""),k=k.replace(f(),""),j=j.replace(/,/g,""),h.push(`${j},${j.split(" ")[0]},${k}`)}var l=`${f()}_${g()}`;a(h.join("\n"),`${l}.csv`)})()}();