Services

Web scraping and data extraction.

Structured data out of unstructured sources — reliably, and on a schedule.

Scraping is straightforward to start and difficult to keep running. The site changes its markup, adds rate limiting, moves content behind JavaScript, or blocks your requests entirely. A scraper that worked last month and silently returns empty results this month is worse than no scraper, because you may not notice. I build these to detect their own failure and tell you.

What’s included

  • Structured extraction into JSON, CSV or a database
  • Scheduled monitoring and change detection
  • JavaScript-rendered sites via headless browser where needed
  • Rate limiting and polite crawling that will not get you blocked
  • Validation that alerts when output looks wrong or empty
  • De-duplication and normalisation across sources
  • Aggregation from many sources into one clean dataset

Building for change, not for today

Selectors break. I structure extraction so the parsing rules are separate from the plumbing, which makes a site redesign a configuration fix rather than a rewrite. I also validate output shape on every run, so a change that produces empty or malformed results raises an alert instead of quietly poisoning your dataset.

Being a good citizen

Aggressive scraping gets you blocked and creates problems for the site you are pulling from. I rate limit, identify the crawler honestly, respect robots directives, and cache so the same page is not fetched repeatedly. This is also the pragmatic choice — polite scrapers survive much longer.

A worked example

I built a news aggregation engine that pulls around a hundred RSS feeds from international publishers on a schedule, normalises and de-duplicates them, and serves seven categories from a flat-file cache with no database. It runs on an hourly cycle and self-heals if the cache goes stale.

Common questions

Is web scraping legal?

It depends on the source, the data and your jurisdiction — particularly if personal data or a site's terms are involved. I will raise it if a target looks problematic, but I am not a lawyer and you should take advice for anything sensitive or high-volume.

What if the site is protected or requires login?

Sites behind authentication or bot protection are usually a signal that scraping is not intended. I will tell you honestly rather than building something fragile, and I will not build tooling to defeat access controls.

How do we know when it breaks?

Validation on every run plus alerting. Silent failure is the main risk with scraping, so detecting it is part of the build, not an extra.

Can you scrape at large volume?

Yes, with proper queueing and rate limiting. Volume changes the architecture, so it is worth being clear about scale early.

Next step

Have a project in mind?

Tell me what you're building and roughly when you need it. I reply to every genuine enquiry within one working day.

WhatsApp