Eenvoudig data scrapen met ChatGPT en N8N

The word chatgpt is spelled out in scrabble tiles

Wat is de uitdaging?

De uitdaging is om via AI dynamische energieprijzen op te halen en te verwerken. In het verleden deden we dit met webscraping maar met AI kan dit een stuk eenvoudiger.

An artist’s illustration of artificial intelligence (AI). This illustration depicts language models which generate text. It was created by Wes Cockx as part of the Visualising AI project l...

Wat heb je nodig?

Wat ons betreft bestaat deze toolset standaard uit een low-code oplossing die we vaak gebruiken, namelijk:

  • Easypanel server beheer;
  • N8N workflow automation;
  • MYSQL;
  • Budibase (CRUD tool);
  • ChatGPT API account en key;
  • Gotenberg.

Met deze oplossing kun je elke keer weer:

  • alles eenvoudig beheren;
  • workflow logica bouwen;
  • data opslaan;
  • interne applicaties rondom die data bouwen.
Als je als bedrijf ook een dergelijke Open Source omgeving wilt laat het ons dan weten, voor een fee regelen we het voor je.

Waar halen we de data?

Dit is een belangrijke vraag en ik promoot zeker niet het onbeperkt scrapen van data. In dit geval haal ik de data bij Jeroen.nl. Dat is een leuke site en heel toevallig komt hij ook nog eens uit Groningen.

De data

Op de site van Jeroen.nl staat de volgende data.

Dat is interessante data om iets mee te doen.

De tools aan elkaar knopen

Dit is het belangrijkste onderdeel. Zorg in ieder geval dat je de volgende tools hebt draaien onder Easypanel:

  1. Gotenberg (screenshots);
  2. N8N (workflow).

Vervolgens bouwen we in N8N de flow hieronder. Deze moet ervoor zorgen dat we een actuele prijs uitlezen uit een screenshot.

We zullen de stappen in de N8N flow uitleggen. In deze post leggen we niet uit hoe je Gotenberg moet installeren. Dit kun je eenvoudig doen als je Easypanel hebt draaien.

Screenshot maken

Hoewel het misschien wat omslachtig klinkt maken we als eerste een screenshot van de URL bij jeroen.nl. Dit doen we met een HTTP request.

Om het screenshot via Gotenberg te laten werken moet je de volgende parameters vullen:

  • URL Gotenberg applicatie;
  • Body parameter url;
  • Body parameter o;
  • Body parameter clip;
  • Body parameter width;
  • Body parameter height;

URL
Dit is de URL van Gotenberg. Dit kun je in Easypanel vinden onder domain. Uiteraard alleen als je easypanel gebruikt.

url
Dit is de URL van de website waar je de data wilt ophalen, in dit geval https://jeroen.nl/dynamische-energie/prijzen#:~:text=Actuele%20dynamische%20energieprijzen%20voor%20vandaag,00%20en%2020%3A00).

o
Dit is de naam van het bestand om het screenshot in te bewaren, bijvoorbeeld screenshot.png

clip
Deze zet je op true.

width
Dit is de breedte van het screenshot.

height
Dit is de hoogte van het screenshot.

Als je nu de workflow zou draaien dan maakt hij het screenshot.

Bestand wegschrijven

We gebruiken hiervoor de N8N module Read/Write Files from Disk. Dit hebben we nodig om het bestand tijdelijke te bewaren en te kunnen gebruiken voor ChatGPT.

Je ziet hierboven welke waarden je moet vullen.

Teksten uit het screenshot halen via ChatGPT

Wat we nu willen doen is bepaalde informatie uit het screenshot halen, dit doen we via de ChatGPT API.

Binnen N8N gebruik je de OpenAI module, hieronder zie je de instellingen.

We gebruiken in dit geval de ChatGPT mini uitvoering, die is wat goedkoper. Let erop dat je de module moet configureren met je API key.

Het resultaat

Als je de workflow draait dan zal hij het screenshot analyseren en je de juiste prijs geven.

Via N8N kun je natuurlijk weer een hele hoop doen met de verkregen data, bijvoorbeeld opslaan in een database.

Uiteraard hangt er een prijskaartje aan. ChatGPT mini is een stuk goedkoper dan de volledige versie. Een dergelijke dagelijkse check voor iets op een website kost ongeveer 1 cent.

Interesse in hoe je dit zelf eenvoudig doet?

Related Post