Läsa tabelldata från webbsida genom PHP

Permalänk
Medlem

Läsa tabelldata från webbsida genom PHP

På den här sidan förs en del statistik som jag skulle vilja kunna hämta automatiskt genom t ex PHP:

https://portal.icuregswe.org/siri/report/corona.vtfstart (se under fliken "Tabell")

Jag ser två framkomliga vägar:

1. Spara ner hela hemsidan och ur källkoden plocka ut värdena. Försökte använda file_get_contents helt enkelt men problemet är då att man får bara ner en laddningssida där tabelldatan saknas.

2. Under fliken "Detaljer" finns en knapp "Skapa excel-fil" där man kan ladda ner datan. Detta vore kanske den optimala vägen men när jag inspekterar elementet ser jag inte riktigt hur jag kan åstadkomma detta med PHP.

Någon som har tips på en framkomlig väg?

Permalänk
Hedersmedlem

Datat verkar ju hämtas från ett API i JSON-format och sedan formateras i själva webbläsaren.

Enklare än så blir det inte

(Tips, slå på developer tools i webbläsaren, gå till nätverksfliken, och ladda om...)

Permalänk
Medlem
Skrivet av pv2b:

Datat verkar ju hämtas från ett API i JSON-format och sedan formateras i själva webbläsaren.

Enklare än så blir det inte

(Tips, slå på developer tools i webbläsaren, gå till nätverksfliken, och ladda om...)

Perfekt, så enkelt det var! Då har jag en framkomlig väg att plocka ner och extrahera datan.

Kan ju dock passa på att fråga angående alternativ 2, går det att få till med PHP eller kräver det något mer?

Permalänk
Medlem
Skrivet av pv2b:

Datat verkar ju hämtas från ett API i JSON-format och sedan formateras i själva webbläsaren.

Enklare än så blir det inte

(Tips, slå på developer tools i webbläsaren, gå till nätverksfliken, och ladda om...)

Gjorde ett försök nu och identifierade att den data jag söker ligger i https://portal.icuregswe.org/siri/api/reports/GenerateHighCha....

<?php $url = 'https://portal.icuregswe.org/siri/api/reports/GenerateHighCha...'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL,$url); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true)); ?>

Detta renderar endast NULL. Däremot, om jag testar denna kod på någon annan tillgänglig datafil, (t ex https://portal.icuregswe.org/siri/api/params?serverUrl=/api/p... så fungerar det fint. Hur kan man lösa detta problem?

Permalänk
Hedersmedlem
Skrivet av Vesslan:

Gjorde ett försök nu och identifierade att den data jag söker ligger i https://portal.icuregswe.org/siri/api/reports/GenerateHighCha....

<?php $url = 'https://portal.icuregswe.org/siri/api/reports/GenerateHighCha...'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL,$url); $result = curl_exec($ch); curl_close($ch); var_dump(json_decode($result, true)); ?>

Detta renderar endast NULL. Däremot, om jag testar denna kod på någon annan tillgänglig datafil, (t ex https://portal.icuregswe.org/siri/api/params?serverUrl=/api/p... så fungerar det fint. Hur kan man lösa detta problem?

URL:en du postade funkar inte ens att hämta datat med i webbläsaren. Hur hittade du att det var rätt URL?

Edit: Kollade precis i webbläsarens developervy i nätverk. Notera att det är en POST-request som skickas med en lite formulärdata som du skicka med, räcker inte att bara göra en GET-fråga.