Problème pour parser la page d'un site avec simple_html_dom
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 :
Code:
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> |
Le résultat est bizarre, je vous en affiche seulement une partie :
Citation:
��}[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?
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.
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 ...