Tutorial: Scrape eenvoudig webdata met Python

Scrapen is het automatisch verzamelen van gegevens van een website. Dit is een effectieve manier om gegevens te verzamelen voor analyse en onderzoek. In dit artikel zullen we een scraper maken met Python die elke dag automatisch de prijs van een specifiek product op Amazon verzamelt en deze gegevens opslaat in een Excel-bestand.

Eerst moeten we enkele benodigde Python-bibliotheken installeren, zoals BeautifulSoup en Pandas. Deze installeer je in de Terminal met de volgende opdracht:

pip install beautifulsoup4
pip install pandas

Bouw een webscraper in slechts 11 lijnen code

Nu kunnen we starten met het schrijven van onze scraper. We beginnen met het importeren van de nodige bibliotheken:

import requests
from bs4 import BeautifulSoup
import pandas as pd
import datetime

Vervolgens gebruiken we de requests-bibliotheek om de HTML-code van de productpagina op te halen:

# Bij URL plaats je de URL van het product dat je wilt scrapen
URL = "https://www.amazon.nl/-/en/HD9200-90/dp/B09ZLJGLC5"
page = requests.get(URL)

Met BeautifulSoup kunnen we de HTML-code analyseren en specifieke informatie extraheren, zoals de prijs van het product:

soup = BeautifulSoup(page.content, "html.parser")
price = soup.find("span", {"class": "a-price-whole"}).get_text()
now = datetime.datetime.now()

Met de datetime-bibliotheek kunnen we de huidige datum en tijd opvragen:

now = datetime.datetime.now()

Tenslotte slaan we de prijs en datum op in een Pandas DataFrame en exporteren we dit naar een Excel-bestand:

df = pd.DataFrame({"Date": [now], "Price": [price]})
df.to_excel("price_history.xlsx", index=False)

Nu hebben we onze scraper gemaakt en kunnen we deze elke dag automatisch uitvoeren met behulp van een taakplanner, zoals Windows Task Scheduler of Crontab op Linux.

Dit was een basisoverzicht van hoe u een scraper kunt maken met Python om gegevens van een website te verzamelen en op te slaan in een Excel-bestand. Er zijn nog veel verdere stappen die u kunt nemen om uw scraper te verbeteren, zoals het verzamelen van meer gegevens van de productpagina, het verwerken van fouten en het optimaliseren van de prestaties. Door kleine aanpassingen aan dit script scrape je ook eenvoudig data van andere websites.

Scrape productprijzen met de Amazon web scraper

Hieronder vind je de code als een geheel. Je kunt hier allerlei slimme functies aan toevoegen. Een voorbeeld hiervan is bijvoorbeeld een notificatie via email bij een prijsdaling.

import requests
from bs4 import BeautifulSoup
import pandas as pd
import datetime

URL = "https://www.amazon.nl/-/en/HD9200-90/dp/B09ZLJGLC5"
page = requests.get(URL)

soup = BeautifulSoup(page.content, "html.parser")
price = soup.find("span", {"class": "a-price-whole"}).get_text()
now = datetime.datetime.now()

df = pd.DataFrame({"Date": [now], "Price": [price]})
df.to_excel("price_history.xlsx", index=False)

Vond je deze tutorial handig? Bekijk dan ook onze andere tutorials.