Script pour récupérer les membres du groupe Facebook et les exporter dans un fichier CSV. Cet extracteur de membres de groupe Facebook fonctionne dans le navigateur, sans installer d'extension ni utiliser de proxy. Copiez-collez simplement le script dans votre console Chrome.
Accédez à une page de groupe Facebook
Ouvrir la console du développeur Chrome
Copiez Collez le code suivant dans la console. Il ajoutera un bouton "Télécharger 0 membres". Important : Copiez/Collez avant de passer à l'onglet "Personnes/Membres"
Cliquez sur l'onglet "Personnes" de la page du groupe
Faites défiler pour charger les nouveaux membres qui seront supprimés par le script. Le compteur de boutons augmente avec les nouveaux membres grattés.
Une fois cela fait, cliquez sur le bouton "Télécharger les membres X" pour télécharger le fichier CSV généré
Les profils sont conservés dans un cache jusqu'à ce que vous cliquiez sur le bouton "Réinitialiser". Grâce à ce cache, les profils extraits sont toujours disponibles si votre navigateur "plante"
Lisez notre guide étape par étape pour extraire les membres du groupe Facebook et trouver leur profil LinkedIn
dist/main.min.js
var G=Object.defineProperty,Q=(e,t,n)=>t dans e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}) : e[t]=n,M=(e,t,n)=>(Q(e,"symbol"!=typeof t?t+"":t,n),n);fonction ee(e,t) {pour(var n="",r=0;r<t.length;r++)n+=fonction(e){for(var t="",n=0;n<e.length;n++){var r=null= ==e[n]||"u"<typeof e[n]?"":e[n].toString(),r=(r=e[n]instanceof Date?e[n].toLocaleString():r).replace(/"/g,'""');0<n&&(t+=","),t+=r=0<=r.search(/ ("|,|n)/g)?'"'+r+'"':r}retour t+``}(t[r]);var i=nouveau 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);let P,j;function te(){return P=P||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}fonction ne(){return j=j||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const D =nouveau WeakMap,E=nouveau WeakMap,b=nouveau WeakMap;fonction re(o){var e=nouvelle promesse((e,t)=>{const n=()=>{o.removeEventListener("success",r),o.removeEventListener("error",i)},r=()=>{e(h(o.result)),n() },i=()=>{t(o.error),n()};o.addEventListener("success",r),o.addEventListener("error",i)});return b.set(e,o),e}fonction ie(o){var e;D.has(o)||(e=nouvelle promesse((e,t)=>{const n=()=>{o.removeEventListener("complete",r),o.removeEventListener("erreur",i),o.removeEventListener("abort",i)},r=()=>{e( ),n()},i=()=>{t(o.erreur||nouveau 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 instanceof 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 instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};fonction K(e){C=e(C)}fonction 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))}}fonction se(e){return"function"==typeof e?oe(e):(e instanceof IDBTransaction&&ie(e),_(e,te())?new Proxy(e,C):e)}fonction 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);fonction ae(e,t,{bloqué : n,upgrade:r,blocking:i,terminated: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("bloqué",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=new Map;function 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. include(r))?(e=async function(e,...t){e=this.transaction(e,o?"readwrite":"readonly");let n=e.store;return i&&(n=n.index(t.shift())),(await Promise.all([n[r](...t),o&&e.done]))[0]},I.set(t ,e),e):vide 0}}K(r=>({...r,get:(e,t,n)=>R(e,t)||r.get(e,t,n),has:(e, t)=>!!R(e,t)||r.has(e,t)}));const le=["continue","continuePrimaryKey","advance"],V={},B= nouveau WeakMap, U = nouveau 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))})}};fonction asynchrone*fe(...e){let t=this;if (t=t instance d'IDBCursor?t:attendre t.openCursor(...e)){t=t;var n=new Proxy(t,ue);for(U