Bonjour,
J'aimerai parser les pages html du site de la fédération française de handball afin d'afficher dans un site perso le classement des équipes.
Pour faire cela j'utilise "simple_html_dom.php" qui est un outil très intéressant.
Voici le code que j'ai dans la page index.php :
Le résultat est bizarre, je vous en affiche seulement une partie :
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
44
45
46
47
48
49
50
51
52
53
54 <DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title id="title"> Test HTML Parse </title> </head> <body> <?php include('simple_html_dom.php'); $html = file_get_html("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html"); /*$html = new simple_html_dom(); $html->load_file("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");*/ $toDisplay = ""; echo "<h1>Classement de LNH</h1>"; //Récupération des informations du classement foreach($html->find('div[class=lgClassmt]') as $e){ //Le tableau $teamRanking = $e->children(1); $temp = ""; $i = 0; foreach($teamRanking->find('td') as $ee){ $temp .= $ee->plaintext . "$$$$"; $i++; if($i == 10){ $data = explode("$$$$", $temp); $toDisplay .= "<li>"; $toDisplay .= $data[0] . " -- " . $data[1] . " -- " . $data[2] . " -- " . $data[3] . " -- " . $data[4] . " -- " . $data[5] . " -- " . $data[6] . " -- " . $data[7] . " -- " . $data[8] . " -- " . $data[9]; $toDisplay .= "</li>"; $temp = ""; $i = 0; } } } //Affichage du classement if(empty($toDisplay)){ echo $html->plaintext; } else { echo "<ul>"; echo $toDisplay; echo "</ul>"; } // clean up memory $html->clear(); unset($html); ?> </body> </html>
Ce qui est encore plus étonnant c'est que si je veux afficher le classement lfh au lieu de lnh, je remplace l'url de l'exemple par cette url 'http://www.ff-handball.org/competitions/championnats-nationaux-mf/lfh/resultats.html' et le résultat fonctionne.��}[s�ؾ�s�jm���>�$�I�=�l�cc;qv�r I�@�$�d�:h��3�|�y���y���-ݐ@HK\�|NR� ������������}�Ό���C�to+�f�I$S��j*U��17������j�.+S~�J�; �Qb�볷������c�HQ�����7�+Kz�>&uW�#Q'�ޓ��o��T;���-�Jf�y�혟�5�8�H/��z�~"�<֢ϒҟs��q��Lui�'o�Ϥ#�ߎ��MO�N�1ˆW5I?
Comme vous pouvez le voir j'ai essayé de deux manière différentes :
1 -
$html = file_get_html("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");
2 -
$html = new simple_html_dom();
$html->load_file("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");
Avez vous des idées sur le fait que pour l'url de la lnh ça me renvoie une liste de caractères spéciaux ?
Je vous remercie par avance.
PS : j'ai aussi essayé avec curl, j'ai le même problème ...
Partager