Recuperation de valeur html d'un autre site

Résolu
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015 - 4 févr. 2007 à 23:21
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 - 6 févr. 2007 à 08:00
bonsoir, j aimerais savoir si c'etait possible de recuperer des valeurs d'une source HTML d'un autre site.
je vous met a la suite le code source de la page ou j aimerais recuperer des valeurs: (les valeurs en rouges sont les donnees que j aimerais recuperer, et en vert les donnes que j aimerais recuperer mais pas tres importante)
<html>


<head>
<style>
<!--
a            {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: 12px;
}
p            { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10 pt }
td            { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10 pt }
body,td,th {
 font-family: Verdana, Arial, Helvetica, sans-serif;
}
a:link {
 color: #3300FF;
}
a:visited {
 color: #3333FF;
}
a:hover {
 color: #000000;
}
-->
-->
</style>
</head>

<style type='text/css'>a {  color: #094098; line-height: normal; text-decoration: none; font-family: Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; cursor: hand}td { line-height: normal; text-decoration: none; font-family: Verdana, Arial, Helvetica, sans-serif; letter-spacing: normal; font-size: 10px;}a:hover      { color: #000000; background-color: #FFFFFF; font-family: Verdana, Arial, Helvetica, sans-serif; }P {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;}body {
 background-image: url(../Image/fond.gif);
}.p1 { font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; }.p_jaune { color: #FFFF00; font-size: 12px; font-family: Verdana, Arial, Helvetica, sans-serif; }</style>


<head>


<meta http-equiv="description" content="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.">


<meta http-equiv="keywords" content="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx">


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">


<title> xxxxxxxxxxxxxxxxxxx</title>


</head>



<center><center>xxxxxxxxxxxxxxxx
</center>
</center>
<center>Posit. relative
,
Nom
,
Prénom
,
Classement officiel
,
Points
,
Catégorie
,

----

1
,
111111111
,
11111222222
,
   45
,
1460
,
V1
,

----

2
,
222222
,
222233333
,
   90
,
664
,
C2
,

----

3
,
333333
,
33334444
,
   45
,
1406
,
S
,

----

4
,
44444444
,
44445555
,
   70
,
936
,
S
,

----

5
,
55555555
,
55556666
,
   55
,
1201
,
S

</center>
<center> 1 / 1
</center>
<form method='POST' action='xxxxxx.php3'>
<center>Atteindre dans la liste,

----

<select name='list_Rech' size='1'><option  value='rechid%3DPos%26position%3D25%26reqid%3D211%26precision%3D10620077%26precision2%3D'>Position relative
<option  value='rechid%3DPag%26position%3D25%26reqid%3D211%26precision%3D10620077%26precision2%3D'>N° de page
<option  value='rechid%3D1%26position%3D25%26reqid%3D211%26precision%3D10620077%26precision2%3D'>Nom
<option  value='rechid%3D0%26position%3D25%26reqid%3D211%26precision%3D10620077%26precision2%3D'>N° de licence
</select>,
,

</center>
</form>
&nbsp;

  ----

    <small>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</small>,
 

</html>

je vous en remercie d'avancede votre aide , on m a parlé de parser , mais je ne comprends pas l utilité.

7 réponses

vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
5 févr. 2007 à 01:26
Saell og blesuð

Voir les expressions régulières :-) http://www.expreg.com ou encore le langage perl

Vilhjálms
Sigurðsdóttir aka Frëyjá
3
Kdecherf Messages postés 96 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 18 avril 2007
5 févr. 2007 à 20:27
Bonsoir, tu peux avoir plusieurs possibilités pour ça :
- Soit une source RSS (XML) est disponible et là il suffit d'utiliser le parser XML de PHP
- Soit tu te fais ton propre parser HTML comme l'a dit vilhjalms (Saell og blesuð au passage) avec les expressions régulières (tu récupères le contenu de la page à l'aide d'un fsockopen() puis tu commences le parsing avec les expressions régulières). Mais dans une telle page, le parsing HTML ne va pas être de tout repos.

Cordialement,
Kdecherf
3
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
6 févr. 2007 à 03:21
Saell og blesuð

<?php
$handle=fopen('test.html','rb');
$contents='';
while(!feof($handle)){
    $contents.=fread($handle, 8192);
}
$con=$contents;
fclose($handle);
$contents=str_replace(array("\r\n",'</td>'),array('','|</td>'),$contents);
$contents=preg_replace('`<tr>(.+?)</td>`','<tr>',$contents);
$start_pos=strpos($contents,"</tr><tr>");
$end_pos=strpos($contents,"</table",$start_pos)-$start_pos;
$contents=substr($contents,$start_pos,$end_pos);
$contents=strip_selected_tags($contents,'<table><td>');
$contents=explode('<tr>',$contents);
for($i=1;$i<=count($contents)-1;$i++){
    $contents[$i]=explode('|',$contents[$i]);
    echo 'Nom : ',$contents[$i][0],'
';
    echo 'Prénom : ',$contents[$i][1],'
';
    echo 'Classement : ',$contents[$i][2],'
';
    echo 'Point : ',$contents[$i][3],'

';
}
//Source : http://fr.php.net/manual/fr/function.strip-tags.php function strip_selected_tags($str, $tags "", $stripContent false){
    preg_match_all("/<([^>]+)>/i",$tags,$allTags,PREG_PATTERN_ORDER);
    foreach ($allTags[1] as $tag){
        if ($stripContent) {
            $str = preg_replace("/<".$tag."[^>]*>.*<\/".$tag.">/iU","",$str);
        }
    $str = preg_replace("/<\/?".$tag."[^>]*>/iU","",$str);
    }
    return $str;
}
?>

Vilhjálms
Sigurðsdóttir aka Frëyjá
3
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
6 févr. 2007 à 08:00
Saell og blesuð

$con=$contents c'etait une autre version voici la dernière qui est plus propre dsl :

<?php
$handle=fopen('test.html','rb');
$contents='';
while(!feof($handle)){
    $contents.=fread($handle, 8192);
}
$con=$contents;
fclose($handle);
$contents=str_replace(array("\r\n",'</td>'),array('','|</td>'),$contents);
$start_pos=strpos($contents,"</tr><tr>")+5;
$end_pos=strpos($contents,"</tr></table>",$start_pos)-$start_pos;
$contents=substr($contents,$start_pos,$end_pos);
$contents=strip_selected_tags($contents,'<table><td>');
$contents=explode('</tr>',$contents);
for($i=0;$i<=count($contents)-1;$i++){
    $contents[$i]=explode('|',strip_selected_tags($contents[$i],'<tr>'));
    echo 'Position : ',$contents[$i][0],'
';
    echo 'Nom : ',$contents[$i][1],'
';
    echo 'Prénom : ',$contents[$i][2],'
';
    echo 'Classement : ',$contents[$i][3],'
';
    echo 'Point : ',$contents[$i][4],'
';
    echo 'Catégorie : ',$contents[$i][5],'

';
}
//Source : http://fr.php.net/manual/fr/function.strip-tags.phpfunction strip_selected_tags($str, $tags "", $stripContent false){
    preg_match_all("/<([^>]+)>/i",$tags,$allTags,PREG_PATTERN_ORDER);
    foreach ($allTags[1] as $tag){
        if ($stripContent) {
            $str = preg_replace("/<".$tag."[^>]*>.*<\/".$tag.">/iU","",$str);
        }
    $str = preg_replace("/<\/?".$tag."[^>]*>/iU","",$str);
    }
    return $str;
}
?>


Vilhjálms
Sigurðsdóttir aka Frëyjá
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
5 févr. 2007 à 07:08
merci,
je viens de lire le site,mais je ne vois pas de tips pour reussir a recuperer une valeur sur un autre site web.

si il y a moyen , dirige moi s'il te plait.


a+
0
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
5 févr. 2007 à 21:17
merci de vos reponses.
 je crois ,apres avoir vu les expressions regulieres,que je vais continuer mes copiers coller dans un fichier texte (beaucoup moins compliqué).
merci encore a toi vihljams et a toi aussi kdecherf.


 
0
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
6 févr. 2007 à 07:34
super simpa,pour ce code, merci vihljams ,l expression $con=$content , c'est exactement ca lol.
mille merci fini les copiers coller .
j espere a une prochaine.
0
Rejoignez-nous