Scrapers are easy. Reliable data pipelines are not.
Anyone can write a script that pulls a page and extracts a few fields. The hard part is everything after the first successful run:
- the site changes its layout
- the portal logs you out
- the anti-bot system notices you
- a field silently comes back empty, and nobody notices for three weeks
That’s the difference between a script and a data pipeline, and it’s what I build.
I built this kind of system in production for a property manager collecting utility bills for 735+ units across 13 providers (read the case study):
- Plugin architecture. Each provider is its own module, so a change on one portal never breaks the others.
- Browser automation that doesn’t get flagged. Playwright runs through rotating residential proxies, with sticky sessions per provider so logins look consistent.
- Resilience built in. Circuit breakers pause a failing provider instead of hammering it. Every task has a timeout, and an hourly cleanup recovers stuck runs.
- Validation and reconciliation. Extracted values are checked against a second source, and mismatches are flagged for review instead of passing through silently.
- An operations dashboard. The team can see every run, failure and result without reading logs.
What I can collect
- Portal data. Invoices, bills, statements, shipment status and reports from supplier, utility, carrier, bank or government portals you have access to.
- Catalogue and pricing data. Products, prices, stock and reviews from e-commerce sites and marketplaces.
- Listings and directories. Property listings, business directories, job posts and tenders.
- Documents. PDFs and files linked from websites, passed on to document AI extraction to get structured fields out.
Doing it responsibly
Good scraping is polite scraping. I respect rate limits, cache aggressively, and fetch only what’s needed. I check terms of use and avoid collecting personal data unless there’s a clear lawful basis. Where a source offers an official API or data export, I’ll recommend using it. It’s usually more reliable and always less risky.
From raw data to decisions
Collecting the data is only step one. The pipeline can also:
- normalise currencies and units
- de-duplicate across sources
- enrich records
- push results into the tools your team uses: Google Sheets, a Postgres database, a BI dashboard, your CRM or an AI step that summarises and classifies what changed
You get a feed you can trust, not a folder of CSVs nobody opens.
