Go to Apify Store
User picture

Aleksandr Kobtsev

aleksandrbooking

Data engineer for travel. 100+ integrations with operator price and availability feeds. I build scrapers on the same assumption: sources lie.

ACTOR STATS

1 public Actor

2 total users

1 monthly user

>99% runs succeeded

Travel data, where being wrong costs money

I have spent my career on price and availability data: over a hundred integrations with travel-operator APIs, where a number off by one is a booking that does not exist. Scraping is the same job with a hostile source, so I build scrapers the way I built those feeds. Assume the source is lying until it proves otherwise.

What that means for an Actor you pay for

The expensive failure in scraping is not a crash. It is a run that succeeds and hands you something wrong: a bot-detection page counted as "no rooms left", prices quietly returned in the property's local currency instead of yours, a field that stopped parsing three weeks ago and nobody noticed.

So my Actors:

  • verify before they bill. Currency, language and the dates the page echoes back are checked on every response.
  • never charge for a page they could not read. Blocked, challenged, wrong-currency and unparseable pages are rejected, not sold to you as data.
  • fail loudly instead of quietly. A run that collected nothing ends as failed, not as a green run with an empty dataset.
  • are watched. A scheduled job re-parses live pages against a recorded baseline, so a markup change shows up in hours instead of in your Issues tab a week later.

Actors

  • Booking.com Hotel Price Calendar Scraper. Nightly rate, stay total, pre-discount price, taxes, room type, cancellation and prepayment policy, rooms left. One row per check-in date. Sold-out dates are flagged as data, not as errors.

Found something broken? Open an issue on the Actor. I read them.

Public Actors