Script para extrair membros de grupos do Facebook e exportá-los para um arquivo CSV. Este extrator de membros do Grupo do Facebook funciona no navegador, sem instalar extensão ou usar proxy. Basta copiar e colar o script no console do Chrome.
Vá para uma página de grupo do Facebook
Abra o Console do desenvolvedor do Chrome
Copiar Cole o seguinte código no console. Ele adicionará um botão "Baixar 0 membros". Importante: copie/cole antes de ir para a aba "Pessoas/Membros"
Clique na guia "Pessoas" da página do grupo
Role para carregar novos membros que serão eliminados pelo script. O contador de botões aumenta com novos membros eliminados.
Feito isso, clique no botão "Baixar membros X" para baixar o arquivo CSV gerado
Os perfis são mantidos em cache até você clicar no botão “Redefinir”. Graças a este cache, os perfis extraídos ainda estarão disponíveis se o seu navegador "travar"
Leia nosso guia passo a passo para extrair membros de grupos do Facebook e encontrar seus perfis no LinkedIn
dist/main.min.js
var G=Object.defineProperty,Q=(e,t,n)=>t in e?G(e,t,{enumerável:!0,configurável:!0,gravável:!0,valor:n}): e[t]=n,M=(e,t,n)=>(Q(e,"símbolo"!=tipo de t?t+"":t,n),n);função ee(e,t) {para(var n="",r=0;r<t.length;r++)n+=function(e){for(var t="",n=0;n<e.length;n++){var r=null= ==e[n]||"u"<tipo de e[n]?"":e[n].toString(),r=(r=e[n]instânciade Data?e[n].toLocaleString():r).replace(/"/g,'""');0<n&&(t+=","),t+=r=0<=r.search(/ ("|,|n)/g)?'"'+r+'"':r}return t+``}(t[r]);var i=novo Blob([n],{type:"text/csv;charset=utf-8;"}),o=document.createElement("a");void 0!==o.download&&(i=URL.createObjectURL(i),o.setAttribute("href",i),o.setAttribute("download",e),document.body.appendChild(o),o. click(),document.body.removeChild(o))}const _=(t,e)=>e.some(e=>t instanceof e);deixe P,j;function te(){return P=P||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}função ne(){return j=j||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const D =novo WeakMap,E=novo WeakMap,b=novo WeakMap;função re(o){var e=nova promessa((e,t)=>{const n=()=>{o.removeEventListener("sucesso",r),o.removeEventListener("erro",i)},r=()=>{e(h(o.result)),n() },i=()=>{t(o.error),n()};o.addEventListener("sucesso",r),o.addEventListener("erro",i)});return b.set(e,o),e}função ie(o){var e;D.has(o)||(e=nova promessa((e,t)=>{const n=()=>{o.removeEventListener("completo",r),o.removeEventListener("erro",i),o.removeEventListener("abortar",i)},r=()=>{e( ),n()},i=()=>{t(o.error||novo DOMException("AbortError","AbortError")),n()};o.addEventListener("completo",r),o.addEventListener("erro",i),o.addEventListener("abortar",i)} ),D.set(o,e))}deixe C={get(e,t,n){se(e instânciade IDBTransaction){if("feito"===t)return D.get(e);if("loja"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[ 0])}retornar h(e[t])},set(e,t,n){retornar e[t]=n,!0},has(e,t){retornar e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function K(e){C=e(C)}function oe(t){return ne( ).includes(t)?function(...e){return t.apply(S(this),e),h(this.request)}:function(...e){return h(t.apply(S(this),e))}}function se(e){return"function"==typeof e?oe(e):(e instanceof BIDTransaction&&ie(e),_(e,te( ))?new Proxy(e,C):e)}função h(e){if(e instanceof IDBRequest)return re(e);if(E.has(e))return E.get(e);var t=se(e);return t!==e&&(E.set(e,t),b.set(t,e)),t}const S=e=>b.get(e);função ae (e,t,{bloqueado:n,atualização:r,bloqueio:i,terminado:o}={}){const s=indexedDB.open(e,t),a=h(s);return r&&s.addEventListener("upgradeneeded",e=>{r(h(s.result),e.oldVersion,e.newVersion,h(s.transaction),e)}),n&&s.addEventListener("bloqueado",e =>n(e.oldVersion,e.ne wVersion,e)),a.then(e=>{o&&e.addEventListener("close",()=>o()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e. newVersion,e))}).catch(()=>{}),a}const ce=["get","getKey","getAll","getAllKeys","count"],de=["put","add","delete","clear"],I=novo mapa;função R(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(I.get(t))return I.get(t);const r=t.replace(/FromIndex$/,""),i=t!==r,o=de.includes(r);return r in(i?IDBIndex:IDBObjectStore).prototype&&(o||ce. inclui(r))?(e=função assíncrona(e,...t){e=this.transaction(e,o?"readwrite":"readonly");deixe n=e.store;return i&&(n=n.index(t.shift())),(aguarde Promise.all([n[r](...t),o&&e.done]))[0]},I.set(t ,e),e):nulo 0}}K(r=>({...r,get:(e,t,n)=>R(e,t)||r.get(e,t,n),tem:(e, t)=>!!R(e,t)||r.has(e,t)}));const le=["continuar","continuePrimaryKey","avançar"],V={},B= novo WeakMap,U = novo WeakMap,ue={get(e,t){if(!le.includes(t))return e[t];deixe n=V[t];return n=n||(V[t]=function( ...e){B.set(this,U.get(this)[t](...e))})}};função assíncrona*fe(...e){let t=this;se (t=t instância de IDBCursor?t:aguardar t.openCursor(...e)){t=t;var n=new Proxy(t,ue);for(U