Collez une page, une publication ou un reel Facebook public. Web Unlocker le renvoie sans connexion : le nombre exact de followers d'une page et sa dernière publication avec ses réactions, commentaires et partages. $0.98 pour 1 000 pages.
1 000 requêtes gratuites · Facturé en cas de succès · 195+ pays · Prêt pour Claude
Les pages Facebook mettent de 4 à 20 secondes à se charger. Le travail continue, inutile de cliquer à nouveau.
Prêt pour vos propres pages ? Obtenez une clé API ou réservez une démo.
Parlez-nous un peu de votre équipe et recevez :
Des pages publiques, sans connexion et sans compte Facebook. Les équipes de veille de marque, les agences et les équipes commerciales lisent ces trois types de page, chacun facturé comme une page.



Envie d'essayer vous-même ? Prenez votre clé API avec 1 000 requêtes gratuites.
Web Unlocker facture une page Facebook une seule fois, avec le nombre exact de followers et la dernière publication, à $0.98 pour 1 000 pages. Les scrapers de pages Facebook sur Apify, Bright Data et ScrapeCreators facturent plus cher la même page.
Apify facture $12.00 pour 1 000 pages.
Ici, 1 000 coûtent $0.98.
Une requête en échec ne coûte rien. Quand Web Unlocker est brièvement indisponible, la démo ci-dessus et les exemples de code redemandent la page, et seule la page qui revient est facturée.
Ce que coûtent 1 000 pages Facebook
1 000 pages publiques avec followers et dernière publication, aux prix publiés
Gologin : $0.98 pour 1 000 pages avec le forfait Growth. Bright Data facture chaque enregistrement, $1.50 pour 1 000. ScrapeCreators facture chaque requête, $1.88 pour 1 000 avec son forfait à $47. Le Facebook Pages Scraper d'Apify lui-même facture $12.00 pour 1 000 pages avec le forfait gratuit.
Prêt à le lancer sur vos propres pages ? Obtenez votre clé API et des requêtes gratuites.
Notre test de scraping Facebook : 20 pages de marque, 14 publications via l'intégration publique de Facebook et 10 reels, chacun demandé jusqu'à trois fois.
37 sur 44 reviennent du premier coup.
6 de plus au deuxième essai.
La Graph API de Facebook, les scrapers Facebook d'Apify et la Facebook Scraper API de Bright Data : ce que chacun facture pour les mêmes 1 000 pages, et ce qu'il vous demande avant de commencer.
| Ce que cela demande | ||||
|---|---|---|---|---|
| Vous payez | Une page | Gratuit, limité | Chaque résultat | Chaque fiche |
| 1 000 pages | $0.98 | Gratuit | $12.00 | $1.50 |
| App Review et vérification d'entreprise | Non | Oui | Non | Non |
| Votre propre compte Facebook | Pas nécessaire | Une app Meta | Pas nécessaire | Pas nécessaire |
| Toutes les publications d'une page via son lien | La dernière | Après examen | Oui | Oui |
| Réactions par type | Total seulement | Oui | Oui | Oui |
| Gratuit pour démarrer | 1 000 requêtes | Après l'App Review | $5 par mois | 5 000 par mois |
| La page entière en HTML | Oui | Non | Non | Non |
Vous scrapez d'autres sites que Facebook ? Web Unlocker renvoie n'importe quelle page de la même façon, au même prix.
Une requête par page apporte son nombre exact de followers et sa dernière publication avec ses réactions et ses commentaires. 100 pages de marque, 100 requêtes, $0.098.
Facebook arrondit la NASA à 28 M followers.
Le scraper renvoie 28,728,835.
Facebook garde les données d'une page publique en JSON dans son HTML. Web Unlocker renvoie ce HTML, et quelques lignes de code en extraient les données. L'onglet Pages de marque est un scraper de pages Facebook pour une liste : des noms de pages en entrée, un CSV en sortie.
Remplissez le formulaire ci-dessus. La clé arrive par e-mail sous un jour ouvré.
Une page pour ses followers et sa dernière publication, une publication ou un reel pour ses J'aime, ses commentaires et ses partages. Une publication passe par l'intégration publique de Facebook.
Vérifiez que la page est arrivée avec des données, et redemandez-la avec une nouvelle URL quand Web Unlocker a été brièvement indisponible.
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`);Prêt à le lancer sur vos propres pages ? Obtenez votre clé API et des requêtes gratuites.
Un compte, un réseau de proxys, un écosystème. Choisissez le produit dont la tâche a besoin.
Vous scrapez d'autres sites ? Voir les scrapers Instagram, Reddit et YouTube, ou tous les outils de web scraping.
Un Facebook scraper est un outil qui lit les pages Facebook publiques et les transforme en données : les followers, la catégorie et la dernière publication d'une page, le texte, les J'aime, les commentaires et les partages d'une publication. Gologin Web Unlocker est une API de scraping Facebook : envoyez-lui l'adresse d'une page, d'une publication ou d'un reel et il renvoie la page avec ces données, à $0.98 pour 1 000 pages.
Envoyez à Web Unlocker l'adresse d'une page ou d'un reel public, et une publication via son intégration publique Facebook. Web Unlocker renvoie la page telle que la voit un visiteur non connecté, avec les données à l'intérieur : followers, dernière publication, réactions, commentaires et partages. Le code ci-dessus les lit en quelques lignes et les enregistre en JSON ou en CSV.
Envoyez l'adresse de la page à Web Unlocker avec la bibliothèque requests et lisez les données dans la page. L'onglet Python ci-dessus est un Facebook scraper complet en Python, testé sur l'API en production : il affiche le nombre exact de followers d'une page, sa catégorie, ses sites web et sa dernière publication avec ses réactions.
Oui. Les pages appartiennent à des marques, des organisations et des personnalités publiques et se chargent pour tout le monde, donc Web Unlocker les renvoie, y compris les liens comme facebook.com/profile.php?id=... Les profils personnels montrent peu ou rien aux visiteurs non connectés, et ce scraper ne les couvre pas.
Oui, la Graph API, avec des limites. Lire les publications publiques d'autres Pages demande la fonctionnalité Page Public Content Access, que Meta accorde après l'App Review (examen de l'app) et la vérification d'entreprise. La Groups API a été supprimée en avril 2024, et CrowdTangle a fermé en août 2024.
Oui. Les pages, publications et reels publics se chargent sans connexion, et Web Unlocker les ouvre comme un visiteur non connecté : vous n'avez besoin d'aucun compte Facebook et ne mettez aucun des vôtres en jeu. Les profils privés et les groupes privés restent fermés.
Pas à partir du seul lien de la page : un visiteur non connecté voit la dernière publication ou la publication épinglée, et Web Unlocker renvoie celle-ci avec le nombre exact de réactions, de commentaires et de partages. Pour plus de publications, envoyez le lien de chacune : une publication est une requête, $0.98 pour 1 000.
Pas avec ce scraper. Les publications des groupes ne reviennent pas via l'intégration publique de Facebook, et les groupes privés ne s'ouvrent qu'à leurs membres. Cette page couvre les pages, les publications et les reels ; Web Unlocker renvoie d'autres pages publiques au même prix par page, alors essayez les vôtres avec les 1 000 requêtes gratuites.
Les nombres, oui : une page renvoie le nombre exact de réactions, de commentaires et de partages de sa dernière publication, et un reel son nombre exact de réactions et de commentaires. Une publication via l'intégration affiche les J'aime arrondis par Facebook, comme 1.4K. La liste complète des commentaires ne se charge que pour les utilisateurs connectés.
$0.98 pour 1 000 pages, le même prix pour chaque page : une page avec sa dernière publication est une page, une publication ou un reel est une page. Une requête en échec ne coûte rien. Les forfaits démarrent à $49 par mois pour 50 000 requêtes.
Web Unlocker inclut 1 000 requêtes gratuites, de quoi couvrir 1 000 pages ou publications. Les bibliothèques open source comme facebook-scraper pour Python sont gratuites : elles tournent sur vos propres serveurs, demandent souvent vos cookies Facebook, et c'est à vous de les maintenir en état de marche quand Facebook change.
Oui. Avec une seule compétence à installer, Claude Code, Cursor ou tout client MCP lit les pages Facebook via Web Unlocker. Voir MCP & AI Skills.
Oui. Le Facebook Pages Scraper d'Apify facture $12.00 pour 1 000 pages avec son forfait gratuit, et son Facebook Posts Scraper $5.00 pour 1 000 publications. Web Unlocker renvoie une page publique avec le nombre exact de followers et la dernière publication, ou une publication via son lien, pour $0.98 les 1 000.
Non. Le Sharing Debugger de Meta, l'outil de débogage du partage souvent appelé Facebook scraper, montre à quoi ressemble votre propre lien une fois partagé sur Facebook et actualise cet aperçu : il se trouve sur developers.facebook.com/tools/debug/. Une API de scraping Facebook comme Web Unlocker lit les données des pages publiques de Facebook.
Les pages, publications et reels qui se chargent sans connexion sont des pages publiques. Dans l'affaire Meta v. Bright Data, en janvier 2024, un tribunal fédéral américain a jugé que les conditions de Meta n'interdisent pas le scraping de données publiques sans connexion. Ce que vous collectez et l'usage que vous en faites relèvent de vous : vérifiez-le au regard des règles applicables à votre projet.
Pas avec Web Unlocker : il envoie chaque requête depuis une adresse du pays que vous choisissez, parmi 195+, donc vous n'avez aucun proxy à louer ni à faire tourner vous-même. La démo ci-dessus interroge depuis les États-Unis.
Parlez-nous un peu de votre équipe et recevez :