Facebook 그룹 구성원을 스크랩하여 CSV 파일로 내보내는 스크립트입니다. 이 Facebook 그룹 회원 추출기는 확장 프로그램을 설치하거나 프록시를 사용하지 않고도 브라우저에서 작동합니다. 스크립트를 복사하여 Chrome 콘솔에 붙여넣기만 하면 됩니다.
Facebook 그룹 페이지로 이동
Chrome 개발자 콘솔 열기
복사 다음 코드를 콘솔에 붙여넣습니다. '회원 0명 다운로드' 버튼이 추가됩니다. 중요: "사람/구성원" 탭으로 이동하기 전에 복사/붙여넣기
그룹 페이지의 "사람" 탭을 클릭하세요.
스크립트에 의해 스크랩될 새 멤버를 로드하려면 스크롤하세요. 새 멤버를 긁으면 버튼 카운터가 늘어납니다.
완료되면 "X 멤버 다운로드" 버튼을 클릭하여 생성된 CSV 파일을 다운로드하세요.
프로필은 "재설정" 버튼을 클릭할 때까지 캐시에 보관됩니다. 이 캐시 덕분에 브라우저가 "충돌"하는 경우에도 추출된 프로필을 계속 사용할 수 있습니다.
Facebook 그룹 회원을 추출하고 LinkedIn 프로필을 찾는 단계별 가이드를 읽어보세요.
dist/main.min.js
var G=Object.defineProperty,Q=(e,t,n)=>t in e?G(e,t,{열거 가능:!0, 구성 가능:!0,쓰기 가능:!0,값:n}): e[t]=n,M=(e,t,n)=>(Q(e,"symbol"!=t의 유형?t+"":t,n),n);함수 ee(e,t){for(var n="",r=0;r<t.length;r++)n+=function(e){for(var t="",n=0;n<e. 길이;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 인스턴스of e);let P,j;함수 te(){return P=P||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]}함수 ne(){return j=j||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype. continuePrimaryKey]}const D=새 WeakMap,E=새 WeakMap,b=새 WeakMap;함수 re(o){var e=new Promise((e,t)=>{const n=()=>{o.removeEventListener("성공",r),o.removeEventListener("오류",i)},r=()=>{e(h(o.result)),n() },i=()=>{t(o.error),n()};o.addEventListener("성공",r),o.addEventListener("error",i)});return b.set(e,o),e}function ie(o){var e;D.has(o)||(e=new Promise((e,t)=>{const n=()=>{o.removeEventListener("완료",r),o.removeEventListener("오류",i),o.removeEventListener("중단",i)},r=()=>{e( ),n()},i=()=>{t(o.error||new DOMException("AbortError","AbortError")),n()};o.addEventListener("완료",r),o.addEventListener("오류",i),o.addEventListener("abort",i)} ),D.set(o,e))}let C={get(e,t,n){if(e 인스턴스of 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 인스턴스of 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 인스턴스of IDBTransaction&&ie(e),_(e,te( ))?new Proxy(e,C):e)}function h(e){if(e 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,{차단됨:n,업그레이드:r,차단:i,종료됨: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("차단됨",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 맵;함수 R(e,t){if(e 인스턴스of 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):무효 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= 새로운 WeakMap,U=새로운 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))})}};비동기 함수*fe(...e){let t=this;if (t=t IDBCursor 인스턴스?t:대기 t.openCursor(...e)){t=t;var n=new Proxy(t,ue);for(U