I will build a python web crawler and scheduled scraper with a database
Python Data Engineer: Web Scraping, ETL Pipelines and Data Enrichment
Level 1
Has met certain performance criteria and shows strong potential in the marketplace.
About this Gig
A scraper that runs once is a file. A scraper that runs every week is a system, and the difference is what happens the day the site changes its layout. Most break silently, and the dashboard is wrong for a fortnight before anybody notices.
What I build
- Custom scrapers and crawlers in Python, for one site or across many
- Scheduled runs on your server or cloud, writing to PostgreSQL, BigQuery or Sheets
- Retries, rate limiting, proxy rotation, and handling for logins and JavaScript
- Alerts when a field starts coming back empty, which is how silent breakage gets caught
What you get
- The working scraper and the source code, yours to keep and change
- Setup docs written for whoever runs it next, not just for you
- A short handover so it can be redeployed without me
I built the crawler that collected and structured the proxy statements of every major US and European airline.
I would rather tell you a source is a bad idea than build something brittle on top of it. Send me the site and how often you need the data, and I will scope it and quote before you order.
Technology:
Python
•
Puppeteer
•
Selenium
•
Beautiful soup
•
Playwright
Technique:
Automated
My Portfolio
FAQ
Do I get the source code?
Yes, all of it, and it is yours to modify, redeploy or hand to another developer. No licence, no runtime dependency on me, no obfuscation. The repository comes with a readme covering install, configuration and how to change the fields it collects.
Can it run without me touching it?
That is what Standard and Premium are for. Scheduled on your own server, a small cloud VM, or AWS Lambda, with logging you can read and alerts when a run fails or returns nothing. Where it runs is your choice, and I will set it up wherever you prefer.
What happens when the site changes and it breaks?
Two things reduce the damage. Selectors written against stable structure rather than generated class names, so small redesigns do not break it. And a validation check that alerts when a field starts returning empty, so you find out the same day rather than a fortnight later.
Which databases can it write to?
PostgreSQL, MySQL, SQLite, BigQuery, MongoDB, or plain CSV and Parquet files if a database is more than you need. Google Sheets works for smaller volumes. Tell me what the data feeds afterwards and I will write it into whatever that expects.
Can it track prices or stock over time?
Yes, and it is one of the better reasons to build rather than buy a one-off pull. Scheduled runs with history retained means you can see movement instead of a snapshot. Premium includes the change detection and the alerting that goes with it.
What about heavy anti-bot protection?
Real browser sessions in Playwright, residential proxy rotation, human-paced timing, and session persistence. Most sites are manageable. A few are not worth the cost, and I will say so rather than quote you for a fight. Send the URL first and I will check.
Can you maintain it after delivery?
Monthly maintenance is available as a separate arrangement: I watch the alerts, fix breakages, and adjust when the source changes. Plenty of clients take the code and run it themselves instead, which is why the docs are written for a stranger.
How is this different from your data scraping gig?
That gig delivers a file. This one delivers a machine that makes the file. If you need the data once, order that one, it is cheaper and faster. If you will need it again next month, this is the one, and the second run is where it pays for itself.
How long does a build take?
Three days for a single-site scraper with source code. Five when it is scheduled and writing to a database. Seven for a multi-site crawler with monitoring and handover docs. I quote the date after seeing the site, and complexity moves it before you order.
Can you fix or take over a scraper someone else built?
Yes. Send me the repository and tell me what it is doing wrong. I will come back with what is broken, whether repairing it is cheaper than rebuilding, and an honest answer when it is not. Sometimes the answer is that the code is fine and the source changed.
