Script para extraer miembros del grupo de Facebook y exportarlos a un archivo CSV. Este extractor de miembros del grupo de Facebook funciona en el navegador, sin instalar una extensión ni utilizar un proxy. Simplemente copie y pegue el script en su consola Chrome.
Ir a una página de grupo de Facebook
Abra la consola de desarrollador de Chrome
Copia y pega el siguiente código en la consola. Agregará un botón "Descargar 0 miembros". Importante: Copie/Pegue antes de pasar a la pestaña "Personas/Miembros"
Haga clic en la pestaña "Personas" de la página del grupo.
Desplácese para cargar nuevos miembros que serán eliminados por el script. El contador de botones aumenta con los nuevos miembros eliminados.
Una vez hecho esto, haga clic en el botón "Descargar X miembros" para descargar el archivo CSV generado.
Los perfiles se mantienen en un caché hasta que haga clic en el botón "Restablecer". Gracias a este caché, los perfiles extraídos siguen estando disponibles si su navegador "falla"
Lea nuestra guía paso a paso para extraer miembros del grupo de Facebook y encontrar su perfil de LinkedIn
dist/main.min.js
var G=Object.defineProperty,Q=(e,t,n)=>t en e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}): e[t]=n,M=(e,t,n)=>(Q(e,"symbol"!=tipo de t?t+"":t,n),n);función ee(e,t){for(var n="",r=0;r<t.length;r++)n+=function(e){for(var t="",n=0;n<e. longitud;n++){var r=null===e[n]||"u"<tipode e[n]?"":e[n].toString(),r=(r=e[n]instanciade Fecha?e[n].toLocaleString():r).replace(/"/g,'""');0<n&&(t+=","),t+=r=0<=r.search(/ ("|,|n)/g)?'"'+r+'"':r}return t+``}(t[r]);var i=nuevo Blob([n],{tipo:"text/csv;charset=utf-8;"}),o=document.createElement("a");void 0!==o.download&&(i=URL.createObjectURL(i),o.setAttribute("href",i),o.setAttribute("descargar",e),document.body.appendChild(o),o. click(),document.body.removeChild(o))}const _=(t,e)=>e.some(e=>t instanciade e);let P,j;función te(){return P=P||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}función ne(){return j=j||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const D =nuevo Mapa Débil,E=nuevo Mapa Débil,b=nuevo Mapa Débil;función re(o){var e=nueva Promesa((e,t)=>{const n=()=>{o.removeEventListener("éxito",r),o.removeEventListener("error",i)},r=()=>{e(h(o.resultado)),n() },i=()=>{t(o.error),n()};o.addEventListener("éxito",r),o.addEventListener("error",i)});return b.set(e,o),e}función es decir(o){var e;D.has(o)||(e=nueva Promesa((e,t)=>{const n=()=>{o.removeEventListener("completo",r),o.removeEventListener("error",i),o.removeEventListener("abortar",i)},r=()=>{e( ),n()},i=()=>{t(o.error||nuevo DOMException("AbortError","AbortError")),n()};o.addEventListener("complete",r),o.addEventListener("error",i),o.addEventListener("abort",i)} ),D.set(o,e))}let C={get(e,t,n){if(e instanciade IDBTransaction){if("done"===t)return D.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return h(e[t])}, set(e,t,n){return e[t]=n,!0},has(e,t){return e instanciade IDBTransaction&&("done"===t||"store"===t)||t in e}};función K(e){C=e(C)}función oe(t){return ne() .includes(t)?function(...e){return t.apply(S(this),e),h(this.request)}:function(...e){return h(t.apply( S(esta),e))}}función se(e){return"function"==tipo de e?oe(e):(e instanciade IDBTransaction&&ie(e),_(e,te())?new Proxy(e,C):e)}función h( e){si(e instanciade 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);función ae(e,t,{bloqueado: n,actualización:r,bloqueo:i,terminado:o}={}){const s=indexedDB.open(e,t),a=h(s);return r&&s.addEventListener("actualización necesaria",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. nuevaVersión,e))}).catch(()=>{}),a}const ce=["get","getKey","getAll","getAllKeys","count"],de=["put","add","delete","clear"],I=nuevo mapa;función R(e,t){if(e instancia de BIDDatabase&&!(t en e)&&"cadena"==tipo de 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. incluye(r))?(e=función asíncrona(e,...t){e=this.transaction(e,o?"readwrite":"readonly");let n=e.store;return i&&(n=n.index(t.shift())),(espera 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),tiene:(e, t)=>!!R(e,t)||r.has(e,t)}));const le=["continuar","continuarPrimaryKey","avanzar"],V={},B= nuevo mapa débil, U = nuevo WeakMap,ue={get(e,t){if(!le.includes(t))return e[t];let n=V[t];return n=n||(V[t]=function( ...e){B.set(this,U.get(this)[t](...e))})}}; función asíncrona*fe(...e){let t=this;if (t=t instancia de IDBCursor?t:await t.openCursor(...e)){t=t;var n=nuevo Proxy(t,ue);for(U