Facebook Comments Scraper - Posts & Pages
Pricing
from $0.65 / 1,000 results
Facebook Comments Scraper - Posts & Pages
Scrape Facebook comments from any public post or page. No login needed. Get comment text, author, date, reactions, reply count. Also extracts post info: text, reactions, shares. Pure HTTP.
Pricing
from $0.65 / 1,000 results
Rating
0.0
(0)
Developer
deusex machine
Maintained by CommunityActor stats
0
Bookmarked
28
Total users
10
Monthly active users
7 days ago
Last modified
Categories
Share
Facebook Comments Scraper — Extract Comments, Reactions, Replies & Profile Data from Public Facebook Posts
⭐ Useful? Leave a review — it takes 10 seconds and is the single biggest thing that helps other social-media researchers find this Facebook comments scraper.
A fast, reliable Facebook comments scraper that pulls comments, author names, profile pictures, reaction counts, reply counts, posting dates and direct comment URLs from any public Facebook post. Works with regular posts, photos, videos, reels and page updates. No Facebook account, no Graph API token, no developer app required — just clean JSON or CSV data. Built for social-media analysts, brand monitoring teams, sentiment researchers, moderators, customer-support teams, academic researchers and anyone doing Facebook sentiment analysis at scale.
✨ Why use this scraper
Given a list of public Facebook post URLs and an optional comment cap, this scraper visits each post, switches the comment sort order from Facebook's default "Most relevant" to "All comments" so nothing is hidden, infinitely scrolls the comment thread until the target count is reached, and returns structured records for every top-level comment it finds. You also get (optionally) a summary record for each post with total reaction count, share count and total comment count.
Every run pulls fresh data — Facebook reactions and replies accumulate over time, so the scraper hits the live page each time. Export the dataset as JSON, CSV, Excel, or XML directly from the Apify console or via the Apify API.
Most Facebook comment scrapers on scraper marketplaces fall into one of three traps: they use the official Graph API (which won't return public comments without explicit page-admin authorization), they rely on fragile DOM selectors that break weekly, or they silently skip comments loaded via infinite scroll. This scraper uses a purpose-built browser backend with scroll automation, sort-order switching and rate-limit-aware request pacing — designed specifically for public Facebook content in 2026's DOM.
📤 Output fields
Comment content
| Field | Type | Description |
|---|---|---|
text | string | The full comment text |
date | string | When it was posted (ISO 8601, computed from Facebook's relative time) |
timeAgo | string | Facebook's relative timestamp label ("2 años", "16 semanas", etc.) |
commentUrl | string | Direct link to the individual comment |
postUrl | string | The parent post URL |
recordType | string | Always "comment" for comment records |
Author profile
| Field | Type | Description |
|---|---|---|
authorName | string | Commenter's display name |
authorUrl | string | Commenter's Facebook profile or page URL |
authorPicture | string | Commenter's profile picture URL (when available) |
Engagement
| Field | Type | Description |
|---|---|---|
likesCount | number | Combined reaction count on the comment (like + love + haha + wow + sad + angry) |
repliesCount | number | Number of replies this comment received |
Post metadata (when includePostInfo is true)
| Field | Type | Description |
|---|---|---|
pageName | string | Name of the Facebook page that published the post |
reactions | string | Total reactions on the parent post (human-readable, e.g. "3,2 mil") |
shares | string | Total shares |
totalComments | string | Total comment count Facebook reports |
recordType | string | "post" for post-metadata records |
🎯 Use cases
- Brand sentiment analysis — pull hundreds of comments from product-launch posts and feed them into a sentiment classifier to track how your campaign actually landed.
- Social listening and crisis monitoring — watch your brand's official page for sudden spikes in negative sentiment or reply volume.
- Customer support triage — export comments from support-related posts into Zendesk, Freshdesk or your ticketing system for follow-up.
- Influencer campaign measurement — pull all comments on sponsored posts to compute engagement rate and detect comment farms.
- Academic research — reproducible datasets for studies on polarization, moderation, hate speech or political discourse on Facebook.
- Competitive intelligence — monitor comments on your competitors' posts to understand their customers' pain points.
- Moderation tooling — extract flagged comments and feed them into a moderation pipeline for review.
- Market research and product discovery — comments on ads and product posts surface unmet needs, feature requests and common objections.
🚀 How to use
Scrape comments from a single post
{"urls": ["https://www.facebook.com/CocaCola/posts/pfbid02zmKjSC..."],"maxComments": 200}
Scrape comments from multiple posts in one run
{"urls": ["https://www.facebook.com/nike/posts/...","https://www.facebook.com/walmart/posts/...","https://www.facebook.com/target/posts/..."],"maxComments": 100}
Get every available comment (unlimited mode)
{"urls": ["https://www.facebook.com/MrBeast/posts/..."],"maxComments": 0}
Setting maxComments to 0 tells the scraper to scroll until Facebook stops returning new comments. Use this for completeness, but be aware that viral posts with tens of thousands of comments can take 10+ minutes.
Scrape comments without post metadata
{"urls": ["https://www.facebook.com/Netflix/posts/..."],"maxComments": 150,"includePostInfo": false}
📥 Input
| Parameter | Type | Default | Description |
|---|---|---|---|
urls | array | — | Facebook post URLs (required). Works with posts, photos, videos, reels |
maxComments | integer | 100 | Comments per post. 0 = collect everything available |
includePostInfo | boolean | true | Also return a summary record with page name, reaction count, shares and total comments |
📞 Support
This Facebook scraper works with every public post format on Facebook:
https://www.facebook.com/PageName/posts/pfbid...— standard posthttps://www.facebook.com/photo/?fbid=...— photo posthttps://www.facebook.com/watch?v=...— video posthttps://www.facebook.com/reel/...— reelhttps://www.facebook.com/story.php?story_fbid=...— legacy story permalinkhttps://m.facebook.com/...— mobile URL (auto-normalized)
📋 Output example
Comment record
{"postUrl": "https://www.facebook.com/Coca-Cola/posts/pfbid02zmKjSC...","commentUrl": "https://www.facebook.com/people/Alessio-Zagami/100036310122448/?comment_id=Y29t...","text": "Great drink, drink in moderation","date": "2024-03-29T23:48:22.020Z","timeAgo": "2 años","authorName": "Alessio Zagami","authorUrl": "https://www.facebook.com/people/Alessio-Zagami/100036310122448/","authorPicture": "https://scontent-fra3-2.xx.fbcdn.net/v/t39.30808-1/297656494_...","likesCount": 26,"repliesCount": 19,"recordType": "comment"}
Post summary record
{"postUrl": "https://www.facebook.com/Coca-Cola/posts/pfbid02zmKjSC...","pageName": "Coca-Cola","reactions": "3,2 mil","shares": "540","totalComments": "2,6 mil","recordType": "post"}
Export the full dataset as CSV directly from the Apify console, or programmatically via the Apify API.
💻 Code examples
From the Apify API (curl)
curl -X POST 'https://api.apify.com/v2/acts/makework36~facebook-comments-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"urls": ["https://www.facebook.com/CocaCola/posts/pfbid02zmKjSC..."],"maxComments": 200,"includePostInfo": true}'
From Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("makework36/facebook-comments-scraper").call(run_input={"urls": ["https://www.facebook.com/nike/posts/...","https://www.facebook.com/adidas/posts/...",],"maxComments": 150,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item.get("recordType") == "comment":print(item["authorName"], "→", item["text"][:80], "|", item["likesCount"])
From Node.js (apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('makework36/facebook-comments-scraper').call({urls: ['https://www.facebook.com/Netflix/posts/...'],maxComments: 300,includePostInfo: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const comments = items.filter((i) => i.recordType === 'comment');console.table(comments.map((c) => ({author: c.authorName,likes: c.likesCount,replies: c.repliesCount,text: c.text.slice(0, 60),})));
Export to CSV
From the console run page → Export → CSV. Or via API:
https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_TOKEN
⚡ Performance
- ~30 seconds to scrape the first 100 comments on a public post
- Viral posts (5,000+ comments) may take 5–15 minutes due to Facebook's infinite scroll throttling
- Automatic sort switch from Most relevant to All comments so the scraper sees the long tail, not only Facebook's curated selection
- Runs on browser-capable compute (1 GB recommended)
📊 Comparison
There are several Facebook comment extraction tools out there. Here's how ours stacks up.
| Feature | This scraper | Graph API–based scraper | Scraper with residential proxy | Generic "social scraper" |
|---|---|---|---|---|
| Fields per comment | 10 (incl. profile picture, comment URL) | 4–6 | 6–8 | 4–6 |
| Needs FB login / app credentials | No | Yes (page admin) | No | No |
| Works on any public post | Yes | Only your own pages | Yes | Partial |
| Infinite-scroll pagination | Yes | N/A | Partial | No (first page only) |
| Sort switch to "All comments" | Yes | N/A | No | No |
| Post-level metadata (reactions/shares) | Yes (via includePostInfo) | Partial | No | No |
| Supports photos / videos / reels | Yes | No | Partial | Partial |
| Typical cost per 1K comments | ~$0.45 | Free (but rate-limited) | $1–$2 | $0.70–$1.50 |
| Reliability | High (maintained weekly) | Depends on FB app review | Medium | Low |
The honest take: if you already have a Facebook page and admin credentials, the official Graph API is "free" but hamstrung by permission reviews and only works on pages you control. For scraping comments on any public Facebook post — competitor pages, influencer content, news outlets — this scraper is purpose-built.
💵 Pricing
Pay-per-result model:
- $0.45 per 1,000 Facebook comments extracted
- Apify gives every new user a $5 free trial → roughly 11,000 comments to evaluate the scraper
- No subscription, no minimum
❓ FAQ
Do I need a Facebook account or developer app?
No. This Facebook comments scraper reads publicly available post pages — the same view any browser-less visitor would see. There's no login, no OAuth, no Graph API app review.
Is scraping Facebook comments legal?
This actor reads only publicly visible content. Facebook's Terms of Service restrict automated access; most jurisdictions treat public-page scraping as permissible for research and journalism, but commercial use may carry additional obligations under GDPR (if you collect EU users' personal data). Consult legal counsel for your specific use case.
Does it extract replies to comments as well?
Only top-level comments are extracted in v1. The repliesCount field tells you how many replies each comment has. Full reply-tree extraction is on the roadmap — leave a review requesting it to bump priority.
Are the reaction counts split by emoji type?
No — likesCount aggregates all reaction types (👍 ❤️ 😂 😮 😢 😡). Facebook's per-emoji breakdown isn't available at comment level in the public DOM.
Why are the counts ("3,2 mil") returned as strings?
Facebook localizes and shortens large numbers ("3.2K", "3,2 mil", "1.2M"). Parsing these into raw integers loses information (e.g. "3.2K" could be 3150 or 3249). The scraper returns Facebook's label verbatim so you can parse it in your own locale-aware way.
Does it follow paginated comment threads on older posts?
Yes. The scraper scrolls the comment panel until either maxComments is hit or Facebook stops returning new items.
Can I scrape comments from Facebook groups?
Only public groups where the post is visible without joining. Private or closed groups will not return results.
Does it handle Facebook's consent popup (EU users)?
Yes. The underlying browser backend dismisses the cookie and consent dialogs before extracting comments.
Can I scrape comments with specific keywords only?
Not at input level — the scraper returns all comments, and you filter in your downstream pipeline. This is more flexible (and more cost-efficient) than server-side filtering.
📝 Changelog
- v1.1 (2026-04-22) — Full SEO rewrite, added Python / Node / curl examples, anonymized comparison table, categorized field list, advanced usage patterns.
- v1.0 (2026-03-05) — Initial release with multi-URL input, post-summary record, profile picture extraction and sort-switch to "All comments".
🔗 Related actors
- Reddit Scraper — threads, comments and karma from Reddit
- Threads Scraper — Meta's Threads platform
- Fast Airbnb Price Scraper — Airbnb listings, prices and ratings
- VRBO Scraper — vacation rental data
- Website Email & Contact Finder — emails, phones and socials from company websites