Hallo PHP'ers,

Op deze site, Klik hier om de pagina te bekijken, word een liedje getoond met het aantal "likes" en het aantal "plays".
Ik probeer om hieruit te likes en the plays uit te halen. Maar om 1 of andere reden lukt het mij totaal niet.

Dit is de code die ik tot nu toe heb om de bron eruit te halen:
<?php

session_start();

$url = 'https://m.starmakerstudios.com/d/playrecording?app=sm&from_sid=62094808960&is_convert=true&pg_rf_ca_vn=248&recordingId=7881299415089640&share_type=copyLink';

$context = stream_context_create(
    array(
        "http" => array(
            "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
        )
    )
);

$html = file_get_contents($url, false, $context);

$doc = new DOMDocument;
libxml_use_internal_errors(true);
$doc->loadHTML($html);
libxml_clear_errors();

$xpath = new DOMXpath($doc);

print '<pre>';
print_r($xpath->document);
print '</pre>';

?>
Ik krijg de code wel te zien maar ik vind nergens de likes en de views terug.
Kan er iemand mij helpen naar de goede richting ?
Ik vrees dat je met dynamische data (zoals ReactJS, VueJS etc) weinig kan doen met scrapen.
Je kan beter informeren of ze een API hebben. Dat blijft altijd nog de beste manier om data op te halen.
Geen API, en als ik het met google webdeveloper tools bekijk dan zie ik wel de Likes en Views
Dan zie je alles uit de gegenereerde DOM, zoals de browser het inleesten opbouwt.
Niet de DOM uit de source.

Je kan de makers eens vragen of ze een API hebben. Nee heb je, ja kan je krijgen.
Bedankt voor je uitleg, er is geen API, ik had gehoopt dat er een andere oplossing zou zijn.
tip: gebruik daar json-decode functies van PHP voor.
(even om te voorkomen dat je met strpos() en substr() aan de slag gaat)
Die JSON was mij nog niet opgevallen. Goed gezien Ivo.

@GP: Onthoud wel dat dit een ongedocumenteerde API is. Mocht het aangepast worden, dan ben je zelf verantwoordelijk.
Ivo P op 07/08/2023 12:29:40
tip: gebruik daar json-decode functies van PHP voor.
(even om te voorkomen dat je met strpos() en substr() aan de slag gaat)
Dat heb ik gebruikt

- Ariën - op 07/08/2023 13:03:01
@GP: Onthoud wel dat dit een ongedocumenteerde API is. Mocht het aangepast worden, dan ben je zelf verantwoordelijk.
Geen probleem, komt helemaal goed.

Bedankt ! Ik ben heel goed geholpen, een bank vooruit en een kus van de leraar :)

Reageren