Bonjour à tous,
désolé pour le titre peu explicite, mais je ne savais pas trop quoi mettre.
Je souhaite récupérer le nombre de vues d'une vidéo sur dailymotion, et aucun outils (après pas mal de recherche) ne semble pouvoir donner cette info.
J'ai donc décidé de lire le code source de la page ou se trouve la vidéo pour pouvoir récupérer ce nombre.
Voila à quoi ressemble le code source :
Avec du code avant et après bien sur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <div class="dmco_box left_title"> <h2 class="dmco_title"><a href="/fr/channel/sport">Accéder à la page Sports et Extrême »</a></h2> </div> <div class="dmco_box right_title"> <h2 class="dmco_title"><div class="dmco_html dmpi_video_stats video_stats" id="top_video_stats"><span class="optional_stat"><span class="dmco_simplelink popup_ie_width width_600 linkable ajax_link action:popup" hf="2f706167656974656d2f766964656f2f6368617274733f726571756573743d253246766964656f25324678626764703326616a61785f726e643d34633033366464633736663439" title="8 743 vues"><b class="video_views_value">8 743</b> vues. </span><span class="sep"> | </span></span><span class="optional_stat"><b class="video_comments_value">1</b> com.<span class="sep"> | </span></span><span class="optional_stat"><b class="video_bookmarks_value">6</b> fav.</span></div></h2> </div> </div>
Voila mon code pour récupérer ce nombre :
Jusqu'ici tout va bien, le code fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 <?php $url="http://www.dailymotion.com/video/xbgdp3_world-heli-challenge_sport#from=embed?start=0"; $nom_fichier="pageVideo" ; $code_html=file_get_contents($url); file_put_contents($nom_fichier,$code_html); if (!$fp = fopen("pageVideo","r")) { echo "Echec de l'ouverture du fichier"; } else { $trouve = false; $nb = 0; while(!feof($fp)) { // On récupère une ligne $ligne = fgets($fp, 255); if(preg_match("#vues#", $ligne)) { echo '<p>'. $ligne .'</p>'; $ligneS = str_replace(' ', '', $ligne); preg_match('#([0-9]+vues)#', $ligneS, $nb); $nb = str_replace('vues', '', $nb[1]); } } fclose($fp); // On ferme le fichier echo 'le nombre est : '. $nb; } ?>
Ce que je voudrai maintenant c'est savoir comment être sur qu'a la lecture du code source, la ligne contenant l'info "title="8 743 vues" ne soit pas coupée, ce qui empêcherai le code de fonctionner?
Si je met aucune valeur dans la fonction fgets, suis-je sur que la ligne sera lue comme moi je vois le code source ou peut-elle être coupée?
Merci.
Cordialement.
Partager