Skript zum Scrapen von Facebook-Gruppenmitgliedern und zum Exportieren in eine CSV-Datei. Dieser Facebook-Gruppenmitglieder-Extraktor funktioniert im Browser, ohne dass eine Erweiterung installiert oder ein Proxy verwendet werden muss. Kopieren Sie einfach das Skript und fügen Sie es in Ihre Chrome-Konsole ein.
Gehen Sie zu einer Facebook-Gruppenseite
Öffnen Sie die Chrome-Entwicklerkonsole
Kopieren Sie den folgenden Code und fügen Sie ihn in die Konsole ein. Es wird eine Schaltfläche „0 Mitglieder herunterladen“ hinzugefügt. Wichtig: Kopieren/Einfügen, bevor Sie zur Registerkarte „Personen/Mitglieder“ wechseln
Klicken Sie auf der Gruppenseite auf die Registerkarte „Personen“.
Scrollen Sie, um neue Mitglieder zu laden, die vom Skript gescrapt werden. Der Button-Zähler erhöht sich mit dem Scrapen neuer Mitglieder.
Wenn Sie fertig sind, klicken Sie auf die Schaltfläche „X-Mitglieder herunterladen“, um die generierte CSV-Datei herunterzuladen
Die Profile werden in einem Cache gespeichert, bis Sie auf die Schaltfläche „Zurücksetzen“ klicken. Dank dieses Caches sind die extrahierten Profile auch dann noch verfügbar, wenn Ihr Browser „abstürzt“.
Lesen Sie unsere Schritt-für-Schritt-Anleitung zum Extrahieren von Facebook-Gruppenmitgliedern und zum Finden ihres LinkedIn-Profils
dist/main.min.js
var G=Object.defineProperty,Q=(e,t,n)=>t in 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);function ee(e,t){for(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"<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}return t+``}(t[r]);var i=new 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 caseof e);let P,j;function te(){return P=P||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}function ne(){return j=j||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]}const D =new WeakMap,E=new WeakMap,b=new WeakMap;function re(o){var e=new Promise((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}Funktion ie(o){var e;D.has(o)||(e=new Promise((e,t)=>{const n=()=>{o.removeEventListener("complete",r),o .removeEventListener("error",i),o.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{t(o.error ||neu 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 Instanz von 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 exampleof 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 Instanz von IDBTransaction&&ie(e),_(e,te( ))?new Proxy(e,C):e)}function h(e){if(e Instanz von 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);function ae (e,t,{blocked: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("blocked",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 Instanz von 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. Includes(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):void 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= neue WeakMap,U=neu 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))})}};async function*fe(...e){let t=this;if (t=t Instanz von IDBCursor?t:await t.openCursor(...e)){t=t;var n=new Proxy(t,ue);for(U