scrape dynamic pages met php
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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>';
?>
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>';
?>
Kan er iemand mij helpen naar de goede richting ?
Je kan beter informeren of ze een API hebben. Dat blijft altijd nog de beste manier om data op te halen.
Gewijzigd op 06/08/2023 18:44:22 door - Ariën -
Geen API, en als ik het met google webdeveloper tools bekijk dan zie ik wel de Likes en Views
Niet de DOM uit de source.
Je kan de makers eens vragen of ze een API hebben. Nee heb je, ja kan je krijgen.
Gewijzigd op 06/08/2023 20:39:34 door - Ariën -
Bedankt voor je uitleg, er is geen API, ik had gehoopt dat er een andere oplossing zou zijn.
https://github.com/chrome-php/chrome
Dit kan je doen d.m.v. Gewijzigd op 06/08/2023 23:21:57 door Marthijn Buijs
https://api.starmakerstudios.com/web/comment/comments?time=1691393707233&sm_id=4444750716
tussen.
Dat geeft een berg JSON terug, waarbij num_likes lijkt te bevatten wat je zoekt.
Maar https://api.starmakerstudios.com/web/sm/share/detail?time=1691393706802&recording_id=7881299415089640&from_sid=62094808960
zou ook je info kunnen bevatten
Ivo P op 07/08/2023 09:41:15:
Inderdaad daar staat het tussen, nu nog die hele berg uitlezen en de juiste info terug krijgen :)Maar https://api.starmakerstudios.com/web/sm/share/detail?time=1691393706802&recording_id=7881299415089640&from_sid=62094808960
zou ook je info kunnen bevatten
zou ook je info kunnen bevatten
Bedankt !!
(even om te voorkomen dat je met strpos() en substr() aan de slag gaat)
@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:
Dat heb ik gebruikttip: gebruik daar json-decode functies van PHP voor.
(even om te voorkomen dat je met strpos() en substr() aan de slag gaat)
(even om te voorkomen dat je met strpos() en substr() aan de slag gaat)
- Ariën - op 07/08/2023 13:03:01:
Geen probleem, komt helemaal goed.@GP: Onthoud wel dat dit een ongedocumenteerde API is. Mocht het aangepast worden, dan ben je zelf verantwoordelijk.
Bedankt ! Ik ben heel goed geholpen, een bank vooruit en een kus van de leraar :)
G P op 07/08/2023 14:03:05:
Bedankt ! Ik ben heel goed geholpen, een bank vooruit en een kus van de leraar :)
Graag gedaan... :-)
Eerste waar ik aan dacht.. :P
Gewijzigd op 07/08/2023 14:06:40 door - Ariën -