Ik maak een python web crawler en geplande scraper met een database
Python Data Engineer: web scraping, ETL pipelines en data verrijking
Niveau 1
Voldoet aan bepaalde prestatiecriteria en toont een sterke potentie op de marktplaats.
Over deze dienst
Een scraper die één keer draait, is een bestand. Een scraper die elke week draait, is een systeem, en het verschil is wat er gebeurt op de dag dat de site zijn layout verandert. De meeste stoppen stilletjes, en het dashboard is twee weken lang onjuist voordat iemand het doorheeft.
Wat ik bouw
- Op maat gemaakte scrapers en crawlers in Python, voor één site of meerdere
- Geplande runs op jouw server of in de cloud, die schrijven naar PostgreSQL, BigQuery of Sheets
- Retries, rate limiting, proxy rotation en handling voor logins en JavaScript
- Alerts wanneer een veld leeg begint te worden, zo wordt stille breakage opgemerkt
Wat je krijgt
- De werkende scraper en de broncode, die jij mag behouden en aanpassen
- Setup-documentatie geschreven voor degene die het daarna runt, niet alleen voor jou
- Een korte overdracht zodat het zonder mij opnieuw gedeployed kan worden
Ik heb de crawler gebouwd die de proxyverklaringen van alle grote Amerikaanse en Europese luchtvaartmaatschappijen verzamelde en gestructureerd.
Ik vertel liever dat een bron een slecht idee is dan dat ik iets breekbaars erop bouw. Stuur me de site en hoe vaak je de data nodig hebt, en ik bepaal de scope en geef een offerte voordat je bestelt.
Mijn portfolio
Veelgestelde vragen
Automatische vertaling
Krijg ik de broncode?
Ja, alles ervan, en het is van jou om aan te passen, opnieuw te gebruiken of aan een andere ontwikkelaar te geven. Geen licentie, geen runtime afhankelijkheid van mij, geen obfuscatie. De repository wordt geleverd met een readme die installatie, configuratie en hoe je de verzamelde velden kunt aanpassen beschrijft.
Kan het zonder dat ik ernaar omkijk draaien?
Daar zijn de Standard en Premium voor. Gepland op je eigen server, een kleine cloud VM of AWS Lambda, met logging die je kunt lezen en waarschuwingen wanneer een run mislukt of niets oplevert. Waar het draait, is jouw keuze, en ik zet het op waar jij wilt.
Wat gebeurt er als de site verandert en het breekt?
Twee dingen verminderen de schade. Selectors die tegen een stabiele structuur geschreven zijn in plaats van gegenereerde class names, zodat kleine herontwerpen het niet breken. En een validatiecontrole die waarschuwt wanneer een veld leeg begint te worden, zodat je het dezelfde dag ontdekt in plaats van twee weken later.
Aan welke databases kan het schrijven?
PostgreSQL, MySQL, SQLite, BigQuery, MongoDB of eenvoudige CSV- en Parquet-bestanden als een database meer is dan je nodig hebt. Google Sheets werkt voor kleinere volumes. Vertel me wat de data feeds daarna zijn en ik schrijf het in wat dat ook maar verwacht.
Kan het prijzen of voorraad in de loop van de tijd volgen?
Ja, en dat is een van de betere redenen om te bouwen in plaats van een eenmalige pull te kopen. Geplande runs met behoud van geschiedenis betekenen dat je beweging kunt zien in plaats van een momentopname. Premium bevat de veranderingdetectie en de waarschuwingen die daarbij horen.
Hoe zit het met zware anti-bot bescherming?
Echte browser sessies in Playwright, residentiële proxy rotatie, menselijke timing en sessiebehoud. De meeste sites zijn beheersbaar. Een paar niet, en ik zal dat eerlijk zeggen in plaats van je een offerte te geven voor een gevecht. Stuur eerst de URL en ik check het.
Kun je het onderhouden na levering?
Maandelijkse onderhoudsservice is beschikbaar als aparte regeling: ik houd de waarschuwingen in de gaten, repareer breuken en pas aan wanneer de bron verandert. Veel klanten nemen de code en draaien het zelf, daarom zijn de documentatie geschreven voor een vreemde.
Hoe verschilt dit van je data scraping gig?
Die gig levert een bestand. Deze levert een machine die dat bestand maakt. Als je de data één keer nodig hebt, bestel dan die, dat is goedkoper en sneller. Als je het volgende maand weer nodig hebt, is dit de juiste, en de tweede run betaalt zichzelf terug.
Hoe lang duurt een bouw?
Drie dagen voor een scraper voor één site met broncode. Vijf dagen als het gepland is en naar een database schrijft. Zeven dagen voor een crawler voor meerdere sites met monitoring en overdrachtsdocumentatie. Ik geef de datum pas nadat ik de site heb gezien, en de complexiteit bepaalt de tijd voordat je bestelt.
Kun je een scraper repareren of overnemen die iemand anders heeft gebouwd?
Ja. Stuur me de repository en vertel wat er mis is. Ik kom terug met wat er kapot is, of het repareren goedkoper is dan opnieuw bouwen, en een eerlijk antwoord als dat niet zo is. Soms is het antwoord dat de code prima is en dat de bron is veranderd.
