Blog / 11 November 2026 · 3 min read
Build or Buy? What It Takes to Run Your Own Review Scrapers
Most teams that need reviews in their product start the same way. Someone writes a scraper for Google Maps over a sprint, it works, and the feature ships. A customer then asks for Tripadvisor, and another wants Booking.com. Eighteen months later there are eleven scrapers, a proxy bill, and an engineer who spends half their week on tickets that start with "reviews stopped updating for…".
None of this is a reason never to build. But the first scraper is the cheapest part of the job, and it's worth knowing what comes after it before you commit.
What actually breaks
Page structure changes. Review sites change their markup, their internal APIs and their pagination without notice. A scraper that parsed a JSON payload last week gets HTML this week. You find out when a customer does.
Pagination and history. Loading the newest twenty reviews is easy. Loading all 4,000 reviews for a busy hotel means following cursors, handling sort orders that reset, and resuming cleanly when a run dies halfway through.
Blocking. At any real volume you'll meet rate limits, CAPTCHAs and IP blocks. That means proxies, retry logic, backoff, and monitoring to tell "the site is blocking us" apart from "the location has no new reviews".
Normalisation. Booking.com scores out of 10. Most sites use five stars. Some sites translate reviews, some show the original, some show both. Dates come as "3 weeks ago", "March 2026" or a timestamp. Every site needs its own mapping into one schema, and the mapping drifts too.
Finding only what's new. Re-collecting everything on every run is slow and expensive, so you'll want incremental runs. That means tracking what you've already seen per location and per site, and coping with reviews that get edited, deleted or re-ordered.
Matching listings. Your customer gives you "The Continental, 14 Harbour St". You need the right listing on each of six sites, including the ones with slightly different names or a branch that moved.
The cost nobody budgets for
The build is a project. The upkeep is a permanent line item, made up of:
- engineering time to fix scrapers when sites change, usually at short notice;
- proxy and infrastructure costs that grow with volume;
- monitoring and alerting, so breakages surface before customers notice;
- on-call, because a broken scraper is a broken feature;
- the opportunity cost: every week spent on collectors is a week not spent on the reports, alerts and AI features your customers actually pay for.
This upkeep grows with the number of sites, not the number of customers. Two sites is a side task. Twenty is a team.
When building still works
Building can work if you need one or two sites, at low volume, for an internal tool that nobody depends on. Once customers rely on it, or the list of sites grows, the upkeep above becomes the job.
When buying makes sense
Buy when reviews are an input to your product rather than the product itself. That's especially true if:
- your customers ask for more sites over time;
- you need full history when a customer joins, then only new reviews afterwards;
- a broken collector would show up as a broken feature for paying customers;
- your engineers' time is better spent on what you sell.
What to ask any vendor
If you do go shopping, these questions separate the options quickly:
- Is it one schema across every site, or a different output per site?
- Can it return only new reviews since the last run, per location?
- How is data delivered? Webhooks, polling, or file downloads, and are deliveries signed and retried?
- Who fixes it when a site changes, and how fast?
- How is it priced? Per review, per request or per location. Model it against your real volume, not the free tier.
ReviewLake answers all five the same way: one schema, only new reviews per location, signed and retried webhooks, maintained by us, and pay-as-you-go pricing with no commitment. See why teams switch to ReviewLake and every site we support.