Una búsqueda en GitHub de "facebook scraper" devuelve 475 repositorios. Solo 62 de ellos han recibido actualizaciones en los últimos seis meses.
Esa brecha entre "disponible" y "realmente funciona" resume por completo el estado del scraping de Facebook en GitHub en 2026.
He dedicado bastante tiempo a revisar pestañas de issues en repositorios, quejas en Reddit y el comportamiento real de estas herramientas. El patrón es siempre el mismo: la mayoría de los proyectos con más estrellas están rotos en silencio, sus mantenedores se han desentendido y las defensas anti-scraping de Facebook son cada vez más agresivas. Desarrolladores y usuarios de negocio siguen llegando a los mismos resultados, instalando los mismos repos y topándose con la misma salida vacía. Este artículo es una revisión de la realidad en 2026: un análisis honesto de qué repos aún merecen tu tiempo, qué está haciendo Facebook para bloquearlos y cuándo conviene saltarse GitHub por completo.
Por qué la gente busca un Facebook Scraper en GitHub
Los casos de uso detrás de esta búsqueda son los de siempre, aunque las herramientas se sigan rompiendo:
- Generación de leads: extraer información de contacto de páginas de negocio (emails, teléfonos, direcciones) para outreach
- Monitoreo de marketplaces: seguir anuncios, precios e información del vendedor para ecommerce o arbitraje
- Investigación de grupos: archivar publicaciones y comentarios para estudios de mercado, OSINT o gestión de comunidades
- Archivo de contenido y publicaciones: guardar posts públicos de páginas, reacciones, imágenes y marcas de tiempo
- Agregación de eventos: recopilar títulos, fechas, ubicaciones y organizadores de eventos
El atractivo de GitHub es evidente: código visible, coste cero, mantenimiento comunitario en teoría y control total sobre campos y flujos de datos.
El problema es que las estrellas y los forks no significan "sigue funcionando". Entre los 10 repositorios exactos más populares por estrellas, los 10 estaban desactualizados por más de 12 meses a abril de 2026. No es una anomalía: es la norma.
Un usuario de Reddit, en un hilo de noviembre de 2025, lo resumió claramente tras seis meses de intentos: era "imposible sin pagar una aplicación externa de scraping de datos" o usar Python más renderizado JS más bastante potencia de cómputo. Otro, en una discusión de abril de 2026, lo sintetizó así: "Facebook es de los más difíciles de scrapear porque bloquean la automatización con mucha agresividad" y la automatización de navegador es "frágil porque Facebook cambia su DOM constantemente".
Los casos de uso son reales. La demanda es real. La frustración también. El resto del artículo trata de cómo moverse en esa brecha.
¿Qué es exactamente un repositorio de Facebook Scraper en GitHub?
Un "Facebook scraper" en GitHub es un script de código abierto —normalmente en Python— que extrae de forma programática datos públicos de páginas, publicaciones, grupos, Marketplace o perfiles de Facebook. No todos funcionan igual. Dominan tres arquitecturas:
Scrapers con automatización de navegador vs. wrappers de API vs. scrapers HTTP directos
| Enfoque | Stack habitual | Fortaleza | Debilidad |
|---|---|---|---|
| Automatización de navegador | Selenium, Playwright, Puppeteer | Puede sortear muros de login y simula el comportamiento real de un usuario | Lento, consume muchos recursos y es fácil de detectar si no se configura bien |
| Wrapper de API oficial | Meta Graph API / Pages API | Estable, documentado y conforme a las normas cuando está aprobado | Muy restringido: la mayoría de los datos públicos de posts/grupos ya no están disponibles |
| Scraper HTTP directo | requests, parsing HTML, endpoints no documentados | Rápido y ligero cuando funciona | Se rompe cada vez que Facebook cambia la estructura de la página o sus defensas anti-bot |
kevinzg/facebook-scraper es el ejemplo clásico de HTTP directo: extrae páginas públicas "sin API key" usando peticiones directas y parsing. apurvmishra99/facebook-scraper-selenium es un ejemplo de automatización de navegador. minimaxir/facebook-page-post-scraper representa la era de la Graph API, cuando los scripts podían obtener publicaciones de páginas y grupos a través de endpoints oficiales que ya no están disponibles de forma generalizada.
Los datos de destino habituales en estos repos incluyen texto de publicaciones, marcas de tiempo, conteos de reacciones y comentarios, URLs de imágenes, metadatos de página (categoría, teléfono, email, número de seguidores), campos de anuncios de Marketplace y metadatos de grupos o eventos.
En 2026, el verdadero trade-off ya no es el lenguaje. Es qué tipo de fallo estás dispuesto a tolerar.
Auditoría de frescura del Facebook Scraper en GitHub 2026: ¿qué repos realmente funcionan?
Analicé los repositorios de Facebook scraper más populares y recomendados en GitHub contra datos reales de 2026: no me basé en promesas del README, sino en fechas reales de commit, colas de issues y reportes de la comunidad. Esta es la sección más importante.
Tabla completa de auditoría de frescura
| Repo | Estrellas | Último push | Issues abiertos | Lenguaje / runtime | Qué sigue extrayendo | Estado |
|---|---|---|---|---|---|---|
| kevinzg/facebook-scraper | 3,157 | 2024-06-22 | 438 | Python ^3.6 | Publicaciones limitadas de páginas públicas, algunos comentarios/imágenes, metadatos de página | ⚠️ Parcialmente roto / desactualizado |
| moda20/facebook-scraper | 110 | 2024-06-14 | 29 | Python ^3.6 | Lo mismo que kevinzg + helpers para Marketplace | ⚠️ Fork parcial roto / desactualizado |
| minimaxir/facebook-page-post-scraper | 2,128 | 2019-05-23 | 53 | Era Python 2/3, dependía de Graph API | Solo referencia histórica | ❌ Abandonado |
| apurvmishra99/facebook-scraper-selenium | 232 | 2020-06-28 | 7 | Python + Selenium | Automatización de navegador para extraer páginas | ❌ Abandonado |
| passivebot/facebook-marketplace-scraper | 375 | 2024-04-29 | 3 | Python 3.x + Playwright 1.40 | Anuncios de Marketplace mediante automatización de navegador | ⚠️ Frágil / de nicho |
| Mhmd-Hisham/selenium_facebook_scraper | 37 | 2022-11-29 | 1 | Python + Selenium | Scraping general con Selenium | ❌ Abandonado |
| anabastos/faceteer | 20 | 2023-07-11 | 5 | JavaScript | Enfoque orientado a automatización | ❌ Arriesgado / poca evidencia |
Saltan a la vista varias cosas:
- Incluso el "fork activo" (moda20) no recibe actualizaciones desde junio de 2024.
- Las colas de issues cuentan la verdadera historia más rápido que los READMEs.
- Tanto kevinzg como moda20 siguen declarando Python ^3.6 en sus archivos pyproject.toml, una señal de que la base de dependencias no se ha modernizado.
kevinzg/facebook-scraper
El scraper de Facebook en Python más conocido en GitHub. Su README describe scraping de páginas, scraping de grupos, inicio de sesión con credenciales o cookies y campos por publicación como comments, image, images, likes, post_id, post_text, text y time.
Pero la señal operativa es débil:
- Último push: 22 de junio de 2024
- Issues abiertos: 438, incluyendo títulos como "Example Scrape does not return any posts"
- El mantenedor no ha respondido a issues recientes
Veredicto: Parcialmente roto. Sigue siendo útil para pruebas de bajo volumen en páginas públicas y como referencia de nombres de campos, pero no es fiable para producción.
moda20/facebook-scraper (fork de la comunidad)
El fork más visible de kevinzg, con opciones adicionales y ayudas orientadas a Marketplace como extract_listing (documentadas en su README).
La cola de issues deja clara la situación:
- "mbasic is gone"
- "CLI 'Couldn't get any posts.'"
- "https://mbasic.facebook.com is no longer working"
Cuando la interfaz simplificada mbasic cambia o desaparece, una clase entera de scrapers se rompe de golpe.
Veredicto: El fork más destacado, pero también está desactualizado y es frágil en 2026. Es el primero que probaría si insistes en una solución basada en GitHub, pero no esperes estabilidad.
minimaxir/facebook-page-post-scraper
En su momento fue una herramienta muy práctica de Graph API para recopilar publicaciones, reacciones, comentarios y metadatos de Páginas públicas y Grupos abiertos en CSV. Su README todavía explica cómo usar el App ID y App Secret de una aplicación de Facebook.
En 2026, es un artefacto histórico:
- Último push: 23 de mayo de 2019
- Issues abiertos: 53, incluyendo "HTTP 400 Error Bad Request" y "No data retrieved!!"
Veredicto: Abandonado. Está muy ligado a un modelo de permisos de API que Meta ha restringido bastante desde entonces.
Otros repositorios relevantes
- passivebot/facebook-marketplace-scraper: útil para casos de Marketplace, pero su cola de issues incluye "login to view the content", "CSS selectors outdated" y "Getting blocked". Un caso de estudio en una sola línea sobre lo que se rompe al scrapear Marketplace.
- apurvmishra99/facebook-scraper-selenium: tiene un issue que literalmente pregunta "Does it work with new Facebook layout?" desde septiembre de 2020. Eso te dice casi todo.
- Mhmd-Hisham/selenium_facebook_scraper y anabastos/faceteer: ninguno muestra actividad reciente suficiente como para generar confianza.

Las defensas anti-scraping de Facebook: a qué se enfrenta cada scraper de GitHub
La mayoría de los artículos sobre este tema se limitan a un genérico "revisa los Términos de Servicio". Eso no ayuda.
Facebook tiene uno de los sistemas anti-scraping más agresivos de cualquier gran plataforma. Entender esas capas de defensa concretas es lo que separa un scraper funcional de una tarde entera con salida vacía.
El propio post de ingeniería de Meta de febrero de 2025 describe un "Anti Scraping team" que usa análisis estático en toda su base de código para identificar vectores de scraping, envía cartas de cese y desistimiento, desactiva cuentas y se apoya en sistemas de rate limiting. No es una hipótesis: es un compromiso organizativo.

DOM y nombres de clases CSS aleatorios
Facebook aleatoriza deliberadamente los IDs HTML, los nombres de clase y la estructura de la página. Como dijo un comentarista en r/webscraping: "No normal scraper can work on Facebook. The HTML mutates between refreshes."
Qué se rompe: los selectores XPath y CSS que funcionaban la semana pasada hoy no devuelven nada.
Contramedida: usa selectores basados en texto o atributos cuando sea posible. El parsing con IA, que lee el contenido de la página en lugar de depender de selectores rígidos, suele funcionar mejor. Asume que mantener selectores será un coste recurrente.
Muros de login y gestión de sesión
Muchas superficies de Facebook —perfiles, grupos, algunos anuncios de Marketplace— requieren iniciar sesión para ver el contenido. Los navegadores headless suelen ser redirigidos o recibir HTML recortado. La pestaña de issues del scraper de Marketplace de passivebot tiene "login to view the content" como una de las quejas principales.
Qué se rompe: las solicitudes anónimas no ven contenido o se redirigen por completo.
Contramedida: usa cookies de sesión de una sesión real de navegador, o herramientas de scraping basadas en navegador que operen dentro de tu sesión iniciada. Rotar cuentas es posible, pero arriesgado.
Fingerprinting digital
El post de ingeniería de Meta dice que los scrapers no autorizados "commonly hide themselves by mimicking the ways users would normally use a product", lo que en la práctica equivale a decir que la calidad del navegador y del comportamiento es clave para la detección. Las conversaciones de la comunidad en marzo y abril de 2026 siguen recomendando navegadores anti-detect y fingerprints consistentes.
Qué se rompe: las configuraciones estándar de Selenium o Puppeteer se detectan con facilidad.
Contramedida: usa herramientas como undetected-chromedriver o perfiles de navegador anti-detect. Las sesiones realistas y los fingerprints consistentes importan más que un simple cambio de user-agent.
Rate limiting y bloqueo por IP
El post de ingeniería de Meta menciona explícitamente el rate limiting como parte de su estrategia de defensa, incluso limitando los conteos de seguidores para forzar más solicitudes que luego activan los controles de tasa. En la práctica, usuarios reportan rate limiting después de publicar en 10 grupos con intervalos de 10 segundos.
Qué se rompe: las solicitudes masivas desde la misma IP se ralentizan o bloquean en minutos. Las IPs de proxys de datacenter suelen estar bloqueadas de antemano.
Contramedida: rotación de proxies residenciales, no de datacenter, con un ritmo de peticiones sensato.
Cambios en el esquema GraphQL
Algunos scrapers dependen de endpoints internos de GraphQL de Facebook porque devuelven datos más estructurados que el HTML bruto. Pero Meta no publica ninguna garantía de estabilidad para su GraphQL interno, así que estas consultas se rompen en silencio: devuelven datos vacíos en lugar de errores.
Qué se rompe: la extracción estructurada devuelve nada sin avisar.
Contramedida: añade validaciones, monitoriza los endpoints del esquema y fija consultas que sepas que funcionan. Asume mantenimiento constante.
Resumen de las defensas anti-scraping
| Capa de defensa | Cómo rompe tu scraper | Contramedida práctica |
|---|---|---|
| Cambios de layout / selectores inestables | Los selectores XPath y CSS devuelven nada o solo campos parciales | Prefiere anclas robustas, valida con la salida visible de la página y asume mantenimiento |
| Muros de login | Las solicitudes sin sesión pierden contenido o se redirigen | Usa cookies de sesión válidas o herramientas que trabajen dentro de la sesión del navegador |
| Fingerprinting | La automatización estándar parece sintética | Usa navegadores reales, calidad de sesión consistente y medidas anti-detect |
| Rate limiting | Salida vacía, bloqueos, ralentización | Ritmo más lento, lotes pequeños y rotación de proxies residenciales |
| Cambios en consultas internas | La extracción estructurada devuelve datos vacíos sin error | Añade validaciones y asume mantenimiento de consultas |
Cuando fallan los repositorios de GitHub: elige una alternativa permitida
Que un repositorio esté roto no significa que debas buscar otra forma de saltarte los controles de una plataforma. Primero aclara la necesidad de negocio: ¿necesitas analítica a nivel de página, transparencia publicitaria, un directorio público de contactos o un catálogo de productos? Muchas de esas necesidades pueden cubrirse con un producto oficial de Meta, una API con permisos o una fuente pública que no sea de Meta.
Por ejemplo, usa Graph API solo cuando la aplicación y el caso de uso tengan los permisos necesarios; usa los programas de investigación de Meta solo cuando seas elegible; y usa Meta Ad Library para la información publicitaria que sí expone. Para investigación de leads, precios y descubrimiento de negocios locales, suele ser mejor optar por sitios públicos independientes cuyos términos y obligaciones de privacidad puedas evaluar directamente.
Ejemplos de salida real: lo que realmente obtienes
Todos los artículos de la competencia muestran fragmentos de código, pero nunca la salida real. Abajo verás lo que puedes esperar de forma realista de cada enfoque.
Ejemplo de salida: kevinzg/facebook-scraper (o su fork activo)
Según el ejemplo del README, una publicación pública extraída devuelve JSON como este:
{
"comments": 459,
"comments_full": null,
"image": "https://...",
"images": ["https://..."],
"likes": 3509,
"post_id": "2257188721032235",
"post_text": "Don't let this diminutive version...",
"text": "Don't let this diminutive version...",
"time": "2019-04-30T05:00:01"
}
Fíjate en campos anulables como comments_full. En 2026, espera que más campos vuelvan vacíos o faltantes: normalmente es una señal de bloqueo, no un fallo inocente. La salida es JSON en bruto y requiere posprocesado.
Ejemplo de salida: Facebook Graph API
La Pages API actual de Meta documenta solicitudes de información de página como GET /<PAGE_ID>?fields=id,name,about,fan_count. La referencia de Page incluye campos como followers_count, fan_count, category, emails, phone y otros metadatos públicos, pero solo con los permisos correctos, como Page Public Content Access o Page Public Metadata Access.
Ese modelo de datos es mucho más limitado de lo que espera la mayoría de usuarios de scrapers en GitHub. Está centrado en páginas, condicionado por permisos y no sustituye el scraping arbitrario de publicaciones públicas o grupos.
Matriz de tipo de dato de Facebook × ruta de acceso
| Tipo de dato de Facebook | Punto de partida recomendado | Limitación principal |
|---|---|---|
| Activos que administra tu organización | Herramientas oficiales de Meta y APIs aprobadas | Los permisos y campos disponibles varían |
| Observaciones publicitarias | Meta Ad Library | Usa solo los campos y filtros que expone |
| Datos públicos de negocio necesarios para investigación de leads | Un directorio o sitio publicador no perteneciente a Meta y permitido | Verifica los términos y obligaciones de privacidad de la fuente |
| Material privado, de grupos cerrados, con acceso por login o solo de cuentas | No automatizar la recopilación | Busca una vía autorizada en su lugar |
Paso a paso: cómo configurar un Facebook scraper desde GitHub (cuando tiene sentido)
Si has leído la auditoría de frescura y aun así quieres ir por la vía de GitHub, adelante. Aquí va el camino práctico, con notas sinceras sobre dónde se rompe.

Paso 1: elige el repo correcto (usa la auditoría de frescura)
Vuelve a la tabla de auditoría. Elige el repositorio menos desactualizado que encaje con tu superficie objetivo. Antes de instalar nada, revisa la pestaña de Issues: los títulos recientes te dicen más sobre la funcionalidad actual que el README.
Paso 2: configura tu entorno Python
python3 -m venv fb-scraper-env
source fb-scraper-env/bin/activate
pip install -r requirements.txt
Problema habitual: conflictos de versión con dependencias, especialmente Selenium/Playwright. Tanto kevinzg como moda20 declaran Python ^3.6 en su pyproject.toml, una base antigua que puede entrar en conflicto con librerías más nuevas. El scraper de Marketplace de passivebot fija playwright==1.40.0, lo cual está bien para experimentar, pero no demuestra durabilidad.
Paso 3: configura proxies y anti-detección
Si vas a hacer algo más que una prueba rápida:
- Configura rotación de proxies residenciales (busca proveedores con pools de IP específicos para Facebook)
- Si usas automatización de navegador, instala undetected-chromedriver o configura anti-fingerprinting
- No te saltes este paso: Selenium o Puppeteer estándar se detectan rápido
Paso 4: haz una prueba pequeña y valida la salida
Empieza con una sola página pública, no con un lote grande. Revisa la salida con lupa:
- Los campos vacíos o los datos faltantes suelen significar que las defensas de Facebook te están bloqueando
- Compara la salida con lo que realmente ves en la página desde el navegador
- Una prueba exitosa de una sola página vale más que un README bonito
Paso 5: gestiona errores, límites de tasa y mantenimiento
- Implementa reintentos y manejo de errores
- Espera tener que actualizar selectores o configuraciones con regularidad: esto es mantenimiento continuo, no algo que se deja configurado y listo
- Si acabas dedicando más tiempo a mantener el scraper que a usar los datos, esa es una señal para replantearte la opción no-code
Consideraciones legales y éticas sobre el scraping de Facebook
Pueden aplicar los términos de la plataforma, normas de privacidad, obligaciones contractuales y leyes de protección de datos. La visibilidad pública no autoriza de forma automática la recopilación automatizada. Minimiza los datos, documenta la finalidad y la base legal, y busca asesoría jurídica para programas comerciales o de gran escala.
No tomes una extensión del navegador, una sesión iniciada o la etiqueta de “público” como permiso para automatizar la recopilación en productos de Meta.
Conclusiones clave: qué funciona realmente para scrapear Facebook en 2026
La actividad del repositorio, las colas de issues y las reglas actuales de la plataforma importan más que el número de estrellas o un README antiguo. Cuando la necesidad de negocio se refiere a un activo que administras, empieza por las herramientas oficiales de Meta y las APIs aprobadas. Para estudios de mercado, investigación de leads y consultas de precios, una fuente pública permitida que no sea de Meta suele ser más fácil de documentar y gobernar.
Preguntas frecuentes
¿Existe un Facebook scraper que funcione en GitHub en 2026?
Sí, pero las opciones son limitadas. La más destacada es el fork moda20/facebook-scraper del repo original de kevinzg; revisa la tabla de auditoría de frescura de arriba para ver el estado actual. Puede extraer parcialmente publicaciones públicas y algunos metadatos, pero su cola de issues muestra roturas básicas alrededor de mbasic y de la salida vacía. La mayoría de los demás repos están abandonados o completamente rotos.
¿Puedo scrapear Facebook sin programar?
Usa las herramientas de búsqueda y administración de Facebook para investigación manual. Para trabajo repetible o programático, evalúa la API oficial y sus permisos, o rediseña el flujo alrededor de una fuente permitida que no sea de Meta. La comodidad no-code no elimina obligaciones de plataforma, privacidad o contrato.
¿Es legal scrapear Facebook?
Los Términos de Servicio de Facebook prohíben la recopilación automatizada de datos sin permiso. Meta hace cumplir esto activamente mediante bloqueos de cuenta, cartas de cese y desistimiento y demandas. La legalidad varía según la jurisdicción y el caso de uso. Limítate a datos empresariales disponibles públicamente, evita perfiles personales y consulta a un abogado si trabajas a gran escala.
¿Qué datos puedo seguir obteniendo desde la Facebook Graph API?
En 2026, la Graph API está muy restringida. Puedes acceder a datos limitados a nivel de página —campos como id, name, about, fan_count, emails, phone— con permisos adecuados como Page Public Metadata Access. La mayoría de los datos de publicaciones públicas, los datos de grupos (la Groups API está obsoleta) y los datos a nivel de usuario ya no están disponibles por API.
¿Con qué frecuencia se rompen los repositorios de Facebook scraper en GitHub?
Muy a menudo. Facebook cambia de forma continua la estructura de su DOM, las medidas anti-bot y sus APIs internas; no hay una cadencia pública, pero los reportes de la comunidad muestran roturas cada pocas semanas en scrapers activos. La cola de issues del fork moda20 alrededor de la desaparición de mbasic es un ejemplo reciente. Si dependes de un repo de GitHub, reserva presupuesto para mantenimiento regular y validación de resultados.
Más información


