scrape dynamic pages met php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

G P

G P

06/08/2023 18:33:22
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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 ?
 
PHP hulp

PHP hulp

02/03/2024 21:31:51
 
- Ariën  -
Beheerder

- Ariën -

06/08/2023 18:42:48
Quote Anchor link
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.
Gewijzigd op 06/08/2023 18:44:22 door - Ariën -
 
G P

G P

06/08/2023 19:37:29
Quote Anchor link
Geen API, en als ik het met google webdeveloper tools bekijk dan zie ik wel de Likes en Views
 
- Ariën  -
Beheerder

- Ariën -

06/08/2023 20:38:46
Quote Anchor link
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.
Gewijzigd op 06/08/2023 20:39:34 door - Ariën -
 
G P

G P

06/08/2023 22:25:54
Quote Anchor link
Bedankt voor je uitleg, er is geen API, ik had gehoopt dat er een andere oplossing zou zijn.
 
Marthijn Buijs

Marthijn Buijs

06/08/2023 23:21:40
Quote Anchor link
Dit kan je doen d.m.v. https://github.com/chrome-php/chrome
Gewijzigd op 06/08/2023 23:21:57 door Marthijn Buijs
 
Ivo P

Ivo P

07/08/2023 09:41:15
Quote Anchor link
Als je via "inspect" kijkt welke url's er nog via Ajax aangeroepen worden, dan staat daar
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
 
G P

G P

07/08/2023 12:11:35
Quote Anchor link
Inderdaad daar staat het tussen, nu nog die hele berg uitlezen en de juiste info terug krijgen :)
Bedankt !!
 
Ivo P

Ivo P

07/08/2023 12:29:40
Quote Anchor link
tip: gebruik daar json-decode functies van PHP voor.
(even om te voorkomen dat je met strpos() en substr() aan de slag gaat)
 
- Ariën  -
Beheerder

- Ariën -

07/08/2023 13:03:01
Quote Anchor link
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.
 
G P

G P

07/08/2023 14:03:05
Quote Anchor link
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 :)
 
- Ariën  -
Beheerder

- Ariën -

07/08/2023 14:05:49
Quote Anchor link
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 -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.