Pega una página, una publicación o un reel públicos de Facebook. Web Unlocker los devuelve sin iniciar sesión: de una página, los seguidores exactos y la última publicación con sus reacciones, comentarios y compartidos. $0.98 por 1000 páginas.
1000 solicitudes gratis · Solo pagas si funciona · 195+ países · Listo para Claude
Las páginas de Facebook tardan de 4 a 20 segundos. Sigue en proceso, no hace falta volver a hacer clic.
¿Listo para tus propias páginas? Obtén una clave de API o reserva una demo.
Cuéntanos un poco sobre tu equipo y recibe:
Páginas públicas, sin iniciar sesión y sin cuenta de Facebook. Equipos de monitoreo de marca, agencias y equipos de ventas leen estos tres tipos de página, y cada una se cobra como una página.



¿Quieres probarlo tú mismo? Consigue tu clave de API con 1000 solicitudes gratis.
Web Unlocker cobra una sola vez la página de Facebook, con sus seguidores exactos y su última publicación, a $0.98 por 1000 páginas. Los scrapers de páginas de Facebook en Apify, Bright Data y ScrapeCreators cobran más por la misma página.
Apify cobra $12.00 por 1000 páginas.
Aquí 1000 cuestan $0.98.
Una solicitud que falla no cuesta nada. Cuando Web Unlocker no está disponible por un momento, la demo de arriba y los ejemplos de código la piden de nuevo, y solo se cobra la página que vuelve.
Lo que cuestan 1000 páginas de Facebook
1000 páginas públicas con seguidores y la última publicación, a precios publicados
Gologin: $0.98 por 1000 páginas en el plan Growth. Bright Data cobra cada registro, $1.50 por 1000. ScrapeCreators cobra cada solicitud, $1.88 por 1000 en su plan de $47. El Facebook Pages Scraper propio de Apify cobra $12.00 por 1000 páginas en el plan gratuito.
¿Listo para ejecutarlo con tus propias páginas? Obtén tu clave de API y solicitudes gratis.
Nuestra prueba de scraping de Facebook: 20 páginas de marcas, 14 publicaciones a través del embed público de Facebook y 10 reels, cada uno pedido hasta tres veces.
37 de 44 volvieron al primer intento.
6 más al segundo.
La Graph API, la API propia de Facebook, los scrapers de Facebook de Apify y la Facebook Scraper API de Bright Data: lo que cobra cada uno por las mismas 1000 páginas, y lo que te pide antes de empezar.
| Lo que exige | ||||
|---|---|---|---|---|
| Pagas por | Una página | Gratis con límites | Cada resultado | Cada registro |
| 1000 páginas | $0.98 | Gratis | $12.00 | $1.50 |
| Revisión de la app y verificación del negocio | No | Sí | No | No |
| Tu propia cuenta de Facebook | No hace falta | Una app de Meta | No hace falta | No hace falta |
| Todas las publicaciones de una página desde su enlace | La última | Tras la revisión | Sí | Sí |
| Reacciones por tipo | Solo el total | Sí | Sí | Sí |
| Inicio gratis | 1000 solicitudes | Tras la revisión de la app | $5 al mes | 5000 al mes |
| La página completa en HTML | Sí | No | No | No |
¿Haces scraping de algo más que Facebook? Web Unlocker devuelve cualquier página de la misma forma y al mismo precio.
Una solicitud por página trae sus seguidores exactos y su última publicación con reacciones y comentarios. 100 páginas de marcas, 100 solicitudes, $0.098.
Facebook redondea los seguidores de NASA a 28 M.
El scraper devuelve 28,728,835.
Facebook guarda los datos de una página pública como JSON en su HTML. Web Unlocker devuelve ese HTML, y unas pocas líneas de código leen los datos. La pestaña Páginas de marcas es un scraper de páginas de Facebook para una lista: entran nombres de páginas, sale un CSV.
Rellena el formulario de arriba. La clave llega por correo en un día laborable.
Una página para sus seguidores y su última publicación, o una publicación o un reel para sus me gusta, comentarios y compartidos. Una publicación pasa por el embed público de Facebook.
Comprueba que la página trae datos, y pídela de nuevo con una URL nueva cuando Web Unlocker no esté disponible por un momento.
pip install requestsGOLOGIN_SCRAPING_API_KEY=your_key python facebook_page.pyhttps://parsing.webunlocker.gologin.com/v1/scrapeimport html
import json
import os
import re
import time
from datetime import datetime, timezone
import requests
page_url = "https://www.facebook.com/NASA/"
def scrape(url, marker):
for attempt in range(3):
address = url if attempt == 0 else f"{url}?fresh={int(time.time())}"
response = requests.get(
"https://parsing.webunlocker.gologin.com/v1/scrape",
params={"url": address, "geo": "us", "format": "json"},
headers={"apikey": os.environ["GOLOGIN_SCRAPING_API_KEY"]},
timeout=90,
)
page = response.json().get("data", {}).get("html", "") if response.ok else ""
if marker in page:
return page
time.sleep(3)
raise RuntimeError("The page came back without data, try again later")
def blocks(page):
for block in re.findall(r'<script type="application/json"[^>]*>(.*?)</script>', page, re.S):
try:
yield json.loads(block)
except json.JSONDecodeError:
pass
def find(node, key):
if isinstance(node, dict):
for name, value in node.items():
if name == key:
yield value
yield from find(value, key)
elif isinstance(node, list):
for item in node:
yield from find(item, key)
def first(node, key, field):
return next(item for item in find(node, key) if isinstance(item, dict) and field in item)
page = scrape(page_url, "talking about this")
data = list(blocks(page))
meta = dict(re.findall(r'<meta property="(og:\w+)" content="([^"]*)"', page))
about = html.unescape(meta["og:description"])
count = lambda words: int(re.search(rf"([\d,]+) {words}", about).group(1).replace(",", ""))
details = first(data, "delegate_page", "category_name")
story = first(data, "timeline_list_feed_units", "edges")["edges"][0]["node"]
feedback = first(story, "feedback", "reaction_count")
facebook_page = {
"name": html.unescape(meta["og:title"]),
"followers": count("followers"),
"talking_about_this": count("talking about this"),
"category": details["category_name"],
"intro": details["best_description"]["text"],
"websites": [
item["renderer"]["context_item"]["plaintext_title"]["text"]
for item in find(data, "timeline_context_item")
if item["renderer"]["__typename"] == "WebsiteContextItemRenderer"
],
"latest_post": {
"url": next(find(story, "permalink_url")),
"date": datetime.fromtimestamp(story["creation_time"], timezone.utc).isoformat(),
"text": first(story, "message", "text")["text"],
"reactions": feedback["reaction_count"]["count"],
"comments": first(story, "comments", "total_count")["total_count"],
"shares": feedback["share_count"]["count"],
},
}
print(json.dumps(facebook_page, indent=2, ensure_ascii=False))
print(f"{facebook_page['name']}: {facebook_page['followers']:,} followers and the latest post from one page")GOLOGIN_SCRAPING_API_KEY=your_key node facebook-posts.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeimport { writeFileSync } from 'node:fs';
const posts = [
'https://www.facebook.com/NASA/posts/pfbid05YJTkWebVNj83FA2ifGfHBxTdYFWuNrAMo4yAKnbRuY9XXK8nXohgsLxADToV4vfl',
'https://www.facebook.com/Starbucks/posts/pfbid02v2F2jafXiaaRi3PAramXqszA3W5rRcJtaF8MXE1s453xiHbK9JJNmMqnuzV5i8Gxl',
'https://www.facebook.com/McDonalds/posts/pfbid04kS5YA29jgtMNfHTQCf8JthvEM71jgVJzQN6L53wU7ck5ocPBY49sdFUcmt6L8Nsl',
'https://www.facebook.com/walmart/posts/pfbid02Tcu3cY8cHDhE43MsF7qSQnUDpvMZux6P7FfFsWswowv5QJTVKMeDou73PW6M5c22l',
'https://www.facebook.com/Spotify/posts/pfbid0WmiXu2TVoUdrNDBEJepHYbrukgikHR6euuvJGuLiVNtvTbXkXFywG5rEKCZcRijhl',
'https://www.facebook.com/adidas/posts/pfbid02zsJxukrC4EagRJPwg958TiWViTm9NSCPETubYgPmazax2DKqhZwaNCHBHHaXntvl',
];
const embed = (post) => `https://www.facebook.com/plugins/post.php?${new URLSearchParams({ href: post, show_text: 'true', width: '500' })}`;
async function scrape(url) {
for (let attempt = 1; attempt <= 3; attempt++) {
const address = attempt === 1 ? url : `${url}&fresh=${Date.now()}`;
const params = new URLSearchParams({ url: address, geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const page = response.ok ? (await response.json()).data?.html : '';
if (page?.includes('data-testid="post_message"')) return page;
await new Promise((resolve) => setTimeout(resolve, 3000));
}
return '';
}
const count = (page, name) => page.match(new RegExp(`sx_post-plugin_${name}"></i>([^<]+)<`))?.[1] ?? '';
const plain = (html = '') =>
html
.replace(/<\/p>\s*<p>|<br\s*\/?>/g, ' ')
.replace(/<[^>]+>/g, '')
.replace(/&/g, '&')
.replace(/&#(\d+);/g, (_, code) => String.fromCodePoint(code))
.replace(/\s+/g, ' ')
.trim();
const rows = [];
for (const post of posts) {
const page = await scrape(embed(post));
const posted = page.match(/data-utime="(\d+)"/)?.[1];
rows.push({
page: plain(page.match(/<span class="_2_79 _50f7">([^<]+)<|<a title="([^"]+)" class="_5pb8|aria-label="([^"]+)" role="img"/)?.slice(1).find(Boolean)),
date: posted ? new Date(posted * 1000).toISOString().slice(0, 10) : '',
likes: count(page, 'like'),
comments: count(page, 'comment'),
shares: count(page, 'share'),
text: plain(page.match(/data-testid="post_message"[^>]*>([\s\S]*?)<\/div>/)?.[1]).slice(0, 80),
});
}
writeFileSync('posts.csv', [Object.keys(rows[0]).join(','), ...rows.map((row) => Object.values(row).map((value) => JSON.stringify(value)).join(','))].join('\n'));
console.table(rows);
console.log(`${rows.length} posts in ${rows.length} requests: $${(rows.length * 0.00098).toFixed(4)} on the Growth plan`);GOLOGIN_SCRAPING_API_KEY=your_key node facebook-pages.mjshttps://parsing.webunlocker.gologin.com/v1/scrapeimport { writeFileSync } from 'node:fs';
const pages = ['NASA', 'Starbucks', 'nike', 'netflix', 'redbull', 'LEGO'];
async function scrape(url) {
for (let attempt = 1; attempt <= 3; attempt++) {
const address = attempt === 1 ? url : `${url}?fresh=${Date.now()}`;
const params = new URLSearchParams({ url: address, geo: 'us', format: 'json' });
const response = await fetch(`https://parsing.webunlocker.gologin.com/v1/scrape?${params}`, {
headers: { apikey: process.env.GOLOGIN_SCRAPING_API_KEY },
});
const page = response.ok ? (await response.json()).data?.html : '';
if (page?.includes('talking about this')) return page;
await new Promise((resolve) => setTimeout(resolve, 3000));
}
return '';
}
const number = (text) => (text ? Number(text.replaceAll(',', '')) : '');
const rows = [];
for (const name of pages) {
const page = await scrape(`https://www.facebook.com/${name}/`);
const about = page.match(/<meta property="og:description" content="([^"]*)"/)?.[1] ?? '';
const feed = page.slice(page.indexOf('"timeline_list_feed_units"'));
const posted = feed.match(/"creation_time":(\d+)/)?.[1];
rows.push({
page: name,
followers: number(about.match(/([\d,]+) followers/)?.[1]),
talking: number(about.match(/([\d,]+) talking about this/)?.[1]),
category: page.match(/"category_name":"([^"]+)"/)?.[1].replaceAll('\\/', '/') ?? '',
posted: posted ? new Date(posted * 1000).toISOString().slice(0, 10) : '',
reactions: number(feed.match(/"reaction_count":\{"count":(\d+)/)?.[1]),
comments: number(feed.match(/"comments":\{"total_count":(\d+)/)?.[1]),
shares: number(feed.match(/"share_count":\{"count":(\d+)/)?.[1]),
});
}
writeFileSync('pages.csv', [Object.keys(rows[0]).join(','), ...rows.map((row) => Object.values(row).map((value) => JSON.stringify(value)).join(','))].join('\n'));
console.table(rows);
console.log(`${rows.length} brand pages in ${rows.length} requests: $${(rows.length * 0.00098).toFixed(4)} on the Growth plan`);¿Listo para ejecutarlo con tus propias páginas? Obtén tu clave de API y solicitudes gratis.
Una cuenta, una red de proxies, un ecosistema. Elige el producto que necesita cada tarea.
¿Haces scraping de más sitios? Consulta los scrapers de Instagram, Reddit y YouTube, o todas las herramientas de web scraping.
Un Facebook scraper es una herramienta que lee páginas públicas de Facebook y las convierte en datos: los seguidores, la categoría y la última publicación de una página, y el texto, los me gusta, los comentarios y los compartidos de una publicación. Gologin Web Unlocker es una Facebook scraper API: envíale la dirección de una página, una publicación o un reel y la devuelve con esos datos, a $0.98 por 1000 páginas.
Envía a Web Unlocker la dirección de una página o un reel públicos, y una publicación a través de su embed público de Facebook. Web Unlocker devuelve la página como la ve un visitante sin sesión iniciada, con los datos dentro: seguidores, la última publicación, reacciones, comentarios y compartidos. El código de arriba los lee en unas pocas líneas y los guarda como JSON o CSV.
Envía la dirección de la página a Web Unlocker con la biblioteca requests y lee los datos de la página. La pestaña Python de arriba es un Facebook scraper completo en Python, probado en la API real: muestra los seguidores exactos, la categoría, los sitios web y la última publicación de una página con sus reacciones.
Sí. Las páginas pertenecen a marcas, organizaciones y figuras públicas y cargan para cualquiera, así que Web Unlocker las devuelve, incluidos enlaces como facebook.com/profile.php?id=... Los perfiles personales muestran poco o nada a los visitantes sin sesión iniciada, y este scraper no los cubre.
Sí, la Graph API, con límites. Leer las publicaciones públicas de otras páginas exige la función Page Public Content Access, que Meta concede después de App Review (la revisión de apps) y de la verificación del negocio. La Groups API se retiró en abril de 2024, y CrowdTangle cerró en agosto de 2024.
Sí. Las páginas, publicaciones y reels públicos cargan sin iniciar sesión, y Web Unlocker los abre como un visitante sin sesión iniciada: no necesitas una cuenta de Facebook ni arriesgas ninguna de las tuyas. Los perfiles privados y los grupos privados siguen cerrados.
No solo con el enlace de la página: un visitante sin sesión iniciada ve la publicación más reciente o fijada de la página, y Web Unlocker devuelve esa, con las reacciones, comentarios y compartidos exactos. Para más publicaciones, envía el enlace de cada una: una publicación es una solicitud, $0.98 por 1000.
No con este scraper. Las publicaciones dentro de los grupos no vuelven a través del embed público de Facebook, y los grupos privados solo se abren para sus miembros. Esta página cubre páginas, publicaciones y reels; Web Unlocker devuelve otras páginas públicas al mismo precio por página, así que prueba las tuyas con las 1000 solicitudes gratis.
Las cifras, sí: una página devuelve las reacciones, comentarios y compartidos exactos de su última publicación, y un reel sus reacciones y comentarios exactos. Una publicación a través del embed muestra los me gusta redondeados como lo hace Facebook, por ejemplo 1.4K. La lista completa de comentarios carga para usuarios con sesión iniciada.
$0.98 por 1000 páginas, el mismo precio para cada página: una página con su última publicación es una página, y una publicación o un reel es una página. Una solicitud que falla no cuesta nada. Los planes empiezan en $49 al mes por 50 000 solicitudes.
Web Unlocker incluye 1000 solicitudes gratis, suficientes para 1000 páginas o publicaciones. Las bibliotecas de código abierto como facebook-scraper para Python son gratis: funcionan en tus propios servidores, a menudo necesitan tus cookies de Facebook, y mantenerlas funcionando cuando Facebook cambia depende de ti.
Sí. Con una sola instalación de skill, Claude Code, Cursor o cualquier cliente MCP lee páginas de Facebook a través de Web Unlocker. Consulta MCP & AI Skills.
Sí. El Facebook Pages Scraper de Apify cobra $12.00 por 1000 páginas en su plan gratuito, y su Facebook Posts Scraper $5.00 por 1000 publicaciones. Web Unlocker devuelve una página pública con los seguidores exactos y la última publicación, o una publicación por su enlace, por $0.98 por 1000.
No. El Sharing Debugger de Meta (el depurador de contenido compartido), a menudo llamado el Facebook scraper, muestra cómo se ve tu propio enlace al compartirlo en Facebook y actualiza esa vista previa: lo encuentras en developers.facebook.com/tools/debug/. Una Facebook scraper API como Web Unlocker lee datos de las páginas públicas de Facebook.
Las páginas, publicaciones y reels que cargan sin iniciar sesión son páginas públicas. En el caso Meta v. Bright Data, en enero de 2024, un tribunal federal de EE. UU. concluyó que los términos de Meta no prohíben el scraping de datos públicos sin sesión iniciada. Qué recoges y cómo lo usas es decisión tuya, así que compruébalo con las normas que se apliquen a tu proyecto.
No con Web Unlocker: envía cada solicitud desde una IP del país que elijas, de entre 195+, así que no alquilas ni rotas proxies tú mismo. La demo de arriba pide desde EE. UU.
Cuéntanos un poco sobre tu equipo y recibe: