Case study

Webshop Product Analyses

Web scraper ontwikkeling

In deze casestudy neem ik je mee door de ontwikkeling van een web scraper en de daarbij horende uitdagingen, oplossingen, en het succesvolle resultaat.

Met deze web scraper stel ik de opdrachtgever in staat om productdata van verscheidene webshops geautomatiseerd te verzamelen. Voorheen gebeurde dit handmatig.

Webshop Product Analyses

Type

  • Web scraper, data-analyse

Rol

  • Software­ontwikkelaar
  • Onderhoud
  • CI/CD

Tijdlijn

  • 2024 - Heden

Opdrachtgever

  • Externe opdrachtgever

Uitdagingen en doelen

De opdrachtgever van dit project houdt zich onder andere bezig met data-analyse van online producten. Daarbij houden ze specifieke producten in de gaten, met name wat de prijzen zijn en review-scores.

Mijn doel van dit project was om het handmatige werk van hun te automatiseren, zodat er dagelijks een nieuwe CSV-feed beschikbaar is met alle verzamelde productgegevens.

De meest geschikte programmeertaal om te gebruiken was Python. Omdat dit het eerste professionele project voor mij was waarbij ik Python moest toepassen, werd het net wat uitdagender voor mij. Desondanks dat, heb ik een goed product opgeleverd.

Python is een geschikte en veelgebruikte taal voor het bouwen van web scrapers. Het is makkelijk te gebruiken en het ondersteunt handige data processing libraries.
Python is een geschikte en veelgebruikte taal voor het bouwen van web scrapers. Het is makkelijk te gebruiken en het ondersteunt handige data processing libraries.

Architectuur en technieken

Zoals hierboven genoemd, is de web scraper met Python geïmplementeerd. Deze Python-script krijgt als argument een input CSV-feed met producten die moeten worden geanalyseerd. De output CSV-feed, is via een afgeschermde HTTP-endpoint, met behulp van Caddy 2, beschikbaar om te downloaden.

Het geheel draait op een Ubuntu server. Met behulp van cronjobs op de server, wordt de Python-script op ingestelde tijden automatisch uitgevoerd.

Globaal overzicht van de architectuur en een aantal technologieën.
Globaal overzicht van de architectuur en een aantal technologieën.
Voor dit project heb ik regelmatig meetings met de opdrachtgever voor het presenteren en toelichten van tussentijdse resultaten.
Voor dit project heb ik regelmatig meetings met de opdrachtgever voor het presenteren en toelichten van tussentijdse resultaten.

Ontwikkelproces

Tijdens dit project heb ik iteratief aan het project gewerkt. Tijdens tussentijdse meetings heb ik veranderende requirements en feedback kunnen opnemen.

Sinds de deployment van de eerste versie, heb ik continu updates geïmplementeerd en onderhoud gepleegd.

Testen

Zoals altijd, unittest ik alle code. Ik heb hierbij gebruik gemaakt van de ingebouwde Python unittest & mock libraries.

De volledige Python applicatie wordt geunittest.
De volledige Python applicatie wordt geunittest.

Ervaren software engineer nodig?

Ik help bedrijven met softwareoplossingen (SaaS, automatiseren en meer) — van backend tot frontend. Neem vrijblijvend contact op om te kijken hoe ik kan bijdragen aan jouw project.

  • Robuuste backend: Java/Kotlin, SQL, Spring Framework
  • Gebruiksvriendelijke front-end: Next.js, React, Typescript, ES6
  • Snelle doorontwikkeling: Continuous integration & deployment, Jenkins
  • Efficiënte samenwerking: Agile, Scrum, Jira, Git, Bitbucket, GitHub
  • Freelance software-ontwikkelaar uit Arnhem