Python: scrape waarde uit website (met vertraging)

Status
Niet open voor verdere reacties.

henri2500

Gebruiker
Lid geworden
28 feb 2007
Berichten
265
Hallo allemaal,

Thuis gebruik in Home Assistant, hiervoor bestaan enkele mooie integraties die het scrapen van data van websites mogelijk maakt. Helaas loop ik tegen een issue aan, omdat de website die ik wil scrapen eerst HTML inlaad, en vervolg switched naar de berekende waarde die ik wil.

Het gaat om de volgende URL (de URL is dynamisch, en het antwoord is dus afhankelijk van de opgegeven waarden in de URL):
https://www.thomasberger.be/pv/pvca...&peakw2=0&temp_coeff2=0&max2=0&res_type=csday

In Home Assistant kun je Python scripts mee laten werken; zou Python een oplossing bieden voor mijn probleem? Kan iemand me een zoekrichting geven of is dit sowieso hopeloos?

Alvast bedankt!
 
Laatst bewerkt:
Dit zie ik op een website over je vraag.
Package ‘BeautifulSoup’ van Python
 
Die heb ik inderdaad voorbij zien komen; maar niet concreet of je een vertraging voor je 'scrape' kan inbouwen, zodat eerst de hele website wordt geladen :rolleyes:
 
omdat de website die ik wil scrapen eerst HTML inlaad, en vervolg switched naar de berekende waarde die ik wil.
De gehele website pagina wordt niet geladen als de website een API heeft die json (of xml) teruggeeft op de opgegeven url
 
De gehele website pagina wordt niet geladen als de website een API heeft die json (of xml) teruggeeft op de opgegeven url

Heb je de link bekeken? Dan snap je wat ik bedoel :). Ik zie namelijk wel een flits van de hele website. Als ik scrapers gebruik in Home Assistant krijg ik ook de html terug van de website ipv het getal wat enkele sec daarna verschijnt.
 
Dat getal komt waarschijnlijk uit een AJAX request.
 
Wat Aar aangeeft lijkt te kloppen. In bestand /pv/pvcalc/scripts/st-xmlhttp.js staan algemene ajax GET functies (met prehistorische code maar het werkt). Vanwaar dit wordt aangeroepen is zoekwerk.
 
Gebruik de network-debugger tool van je browser om je AJAX-request in te zien.
 
Nog even gekeken, geen idee vanwaar het resultaat komt. Dit geeft de website terug
Code:
<html><head></head><body>
{"csday":12027}
</body></html>
 
Dank voor de toelichting. Ik ben helaas totaal onbekend met AJAX. Omdat de bron niet te herleiden is gaat het lastig zijn om deze op te vangen?
 
Omdat de bron niet te herleiden is gaat het lastig zijn om deze op te vangen?
Als de ajax api gedocumenteerd zou zijn dan kan ik je helpen maar nu helaas niet. Het is heel erg tijdrovend om terug te gaan zoeken in alle scripts hoe het nu gedaan wordt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan