DEV Community

Crawler Bros
Crawler Bros

Posted on

How to Scrape Facebook Reviews for Competitor Analysis

Tracking customer feedback across Facebook business pages is essential for brand monitoring, sentiment analysis, and competitor benchmarking. However, collecting this data manually across multiple local or national businesses takes hours and quickly becomes impractical. Because Facebook employs strict anti-bot mechanisms and dynamic web interfaces, building custom scrapers from scratch requires significant engineering time.

The facebook-reviews-scraper on Apify offers a pre-built, automated solution. It extracts public Facebook business page reviews without requiring a Facebook login, capturing rich review data, author metadata, and overall page statistics.

Why Extract Public Facebook Reviews?

Unlike review platforms that rely on traditional 1-to-5 star ratings, Facebook utilizes a binary recommendation model: customers either mark a business as Recommended or Not Recommended. Analyzing these recommendations gives growth teams, market researchers, and product analysts clear insights into brand reputation.

Automating Facebook review collection enables teams to:

  • Benchmark Competitors: Track sentiment trends across rival restaurant chains, retail stores, or regional service providers.
  • Isolate Negative Feedback: Filter directly for non-recommended reviews to spot operational bottlenecks, product flaws, or customer service issues.
  • Track Campaign Impact: Monitor review volume and feedback before and after specific product launches or local marketing drives using date filters.

How the Facebook Reviews Scraper Works

The actor is designed to handle public business pages for services, hospitality, retail, and local storefronts. It bypasses Facebook's bot detection by combining Playwright stealth techniques with Apify residential proxies, ensuring reliable page navigation and extraction.

Multiple Input Modes

Depending on your workflow, you can specify target pages using the mode property:

  • url: Supply direct review URLs via startUrls (for example, https://www.facebook.com/mcdonalds/reviews). This is the most precise method.
  • search: Provide search terms such as business name and location in searchQueries (e.g., Starbucks Dallas TX).
  • pageId: Supply exact numeric page identifiers in the pageIds field.

Precise Filtering and Sorting

To keep datasets clean and relevant, the actor lets you apply filters before scraping:

  • filterByRecommendation: Narrow results down to recommended, not_recommended, or capture all.
  • filterByKeyword: Retrieve only reviews containing specific terms or phrases (case-insensitive).
  • filterByDateFrom and filterByDateTo: Restrict reviews to a specific date window using the YYYY-MM-DD format.
  • sortBy: Choose how to load reviews from the page using either most_recent or most_helpful.

What Data Does the Actor Return?

Each extracted record provides comprehensive details about the review, author, and overall page metrics:

  • Review Details: Review text via text, unique identifier reviewId, binary status isRecommended, post date createdAt, and image URLs via reviewPhotos.
  • Engagement and Comments: Total reactions in reactionCount alongside conversation threads in topComments.
  • Author Information: Reviewer identity in authorName and total review footprint in authorReviewCount.
  • Aggregate Page Stats: High-level page metrics including page.name, overall review volume in page.totalReviewCount, and the overall page.recommendationPercentage.

If a targeted page has no reviews, the actor pushes a record with recordType: "error" and an explanation without crashing the entire run.

Step-by-Step: Scraping Facebook Reviews with Apify

Follow these steps to configure and run the scraper:

1. Select the Input Mode

Open the actor on the Apify platform and choose your input mode. If you already have direct URLs for the target businesses, select url and add the URLs to startUrls. If you only have company names and cities, choose search and input your list into searchQueries.

2. Configure Limits and Filters

Set your scraping volume using maxReviews (total collection limit across pages, up to 500) or maxReviewsPerPage. Apply optional filters such as setting filterByRecommendation to not_recommended if your goal is churn and complaint analysis, or provide dates in filterByDateFrom to focus on recent months.

3. Set Proxy Configuration

Facebook detects datacenter IP ranges aggressively. Ensure proxyConfiguration is set to use residential proxies so requests emulate standard consumer traffic.

4. Run the Actor and Export Data

Click the start button. Once the task finishes, view the extracted records in the Dataset tab. You can export the clean data in JSON, CSV, Excel, or connect it directly to your data warehouse via webhooks or API endpoints.

Technical Considerations

  • Review Volume Cap: The actor supports up to 500 reviews per page. Due to Facebook's pagination structure, scraping beyond 500 records per page is unreliable.
  • Public Pages Only: The tool works strictly on public business pages and does not scrape private groups, personal profiles, or Facebook Marketplace listings.
  • Media Freshness: Facebook CDN links listed in reviewPhotos expire over time. If your workflow requires permanent image storage, download assets immediately after the run completes.

Ready to try it yourself? Run *Facebook Reviews Scraper** on the Apify Store -- no setup required.*

Top comments (0)