Een website-scraper: zo verzamel je gegevens van het web

3 min. leestijd

Prijzen van de site van een leverancier met de hand in een spreadsheet overnemen werkt voor twintig producten. Voor tweeduizend kost het een week en zitten er nog steeds typefouten in. Een website-scraper (ook wel parser genoemd) is een klein programma dat de pagina's voor je opent, van elke pagina dezelfde stukjes informatie overneemt en ze als tabel opslaat. Dit kan hij, dit bereid je voor en deze regels volg je.

Een website-scraper die gegevens in een tabel verzamelt

Waar een scraper handig voor is

Een scraper is nuttig als hetzelfde soort informatie op veel vergelijkbare pagina's staat:

  • Prijzen en voorraad. Volg hoe de prijzen van een leverancier veranderen of welke artikelen uitverkocht zijn.
  • De catalogus van een leverancier. Zet namen, beschrijvingen, afbeeldingen en prijzen over naar je eigen webshop.
  • Advertenties. Verzamel woning-, auto- of vacatureadvertenties van een openbaar platform in één tabel.
  • Evenementen en artikelen. Verzamel datums, titels en links van een openbare agenda of nieuwspagina.

Verzamel alleen wat je mag verzamelen

Controleer eerst of je de gegevens met recht mag overnemen:

  • Alleen openbare pagina's. Moet je inloggen om de gegevens te zien, dan is een scraper het verkeerde middel.
  • Lees de voorwaarden van de site. Veel sites geven aan wat wel en niet mag worden verzameld. Grote platforms, zoekmachines en sociale netwerken verbieden het meestal; gebruik daar hun officiële export of API.
  • Respecteer limieten. Een pauze van een paar seconden tussen pagina's houdt de belasting van de site laag. Probeer nooit captcha's of blokkades te omzeilen.
  • Volg de privacywetgeving. Namen, e-mailadressen en telefoonnummers van mensen zijn persoonsgegevens, en veel landen beperken het verzamelen daarvan streng. Laat ze weg.

Uiteindelijk beslis jij of je de gegevens van een site mag verzamelen en gebruiken, dus controleer dat voordat je begint.

Beschrijf de pagina's

Een scraper wordt geschreven voor de echte opbouw van de pagina's, dus wees precies:

  • Een link naar een overzichtspagina en een link naar één productpagina.
  • Ongeveer hoeveel pagina's er zijn, bijvoorbeeld "zo'n 40 overzichtspagina's met elk 24 producten".
  • Eén of twee pagina's opgeslagen vanuit je browser (Bestand > Pagina opslaan als) of screenshots ervan.

Noem de velden als kolommen van een tabel

Zie het resultaat als een spreadsheet en noem de kolommen op volgorde, met een voorbeeld van elk:

  • Naam: "Eikenhouten snijplank, groot"
  • Prijs: "34.90"
  • Oude prijs: "39.90", als het artikel in de aanbieding is
  • Op voorraad: "ja"
  • Link naar de productpagina en link naar de afbeelding

Tien duidelijke velden zijn beter dan dertig vage. Voeg elke regel toe die je nodig hebt, zoals "alleen artikelen die op voorraad zijn".

Kies het formaat en waar hij draait

  • CSV opent in elke spreadsheet en kan in de meeste webshopsystemen worden geïmporteerd.
  • Excel is makkelijker als je met de hand gaat filteren en sorteren.
  • JSON past bij een ontwikkelaar die de gegevens elders gaat inladen.

De scraper draait op je eigen computer met Python, dus de gegevens komen direct bij jou terecht, en je kunt hem opnieuw draaien wanneer je verse cijfers nodig hebt.

Als de site verandert

Een scraper volgt de pagina's zoals ze er vandaag uitzien. Krijgt de site een nieuw ontwerp, dan vindt de scraper de velden misschien niet meer en moet hij worden bijgewerkt. Een site kan bezoeken ook beperken, zelfs in een rustig tempo. Houd hier rekening mee als je elke week op de gegevens rekent.

Kort samengevat

Bepaal welke openbare pagina's en velden je nodig hebt, controleer de voorwaarden van de site, houd een rustig tempo aan en laat persoonsgegevens weg. Schrijf je de code liever niet zelf, bestel dan een website-scraper: je stuurt de site, de velden en een of twee opgeslagen pagina's, en krijgt de Python-code, een instellingenbestand en een stapsgewijze handleiding om hem te draaien naar CSV, Excel of JSON. De betaling wordt pas vrijgegeven nadat je het werk hebt goedgekeurd.