Récupérer des données d'une page HTML générée par un autre domaine

Récupérer des données d'une page HTML générée par un autre domaine - PHP - Programmation

Marsh Posté le 13-11-2003 à 15:54:15    

Voilà ce que je veux faire :  
 
sur un site se trouve les informations voulues, la page est du type http://www.site.com/selection.php?saisie=texte et dedans, les données s'affichent dans un tableau et tout et tout...
 
bon, moi, je veux les 5 cellules qui se trouvetn au millieu de cette page html et les mettre dans des variables pour afficher ces informations sur mon site internet.
 
es-ce possible ??
pouvez vous me mettre sur la voie ??
 
merci @ ceux qui participeront...

Reply

Marsh Posté le 13-11-2003 à 15:54:15   

Reply

Marsh Posté le 13-11-2003 à 19:24:51    

Récupère la page avec qq chose comme www.php.net/fsockopen , puis parse-là "à la pogne" : à coups de strstr, explode, etc.
 
Par ex si ta page html ressemble à  
 
<p>Voici le tableau à récuperer</p>
<table>
 <tr>
   <td>valeur 1</td>
   <td>valeur 2</td>
 </tr>
</table>
 
un $tab = explode('<td>', $page) te donnera "valeur2</td>" dans $tab[2].

Reply

Marsh Posté le 13-11-2003 à 19:33:22    

si ca peut t'aider j avais posté ca dans un autre topic
 

metos a écrit :

je me suis amusé (et j ai apris en meme temps c est beau la vie)
j ai fais un script qui recupere la page de prevision meteo de meteoconsult.
 
!! a utiliser avec moderation !!
 

Code :
  1. // fonction permettant d affichier
  2. // les prevision meteo sur 1 a 5 jours
  3. // avec pompage chez meteoconsult  
  4. //
  5. // appel de la fontionn : disp_meteo(x)
  6. // avec x : nmbre de jours de prevision
  7. // x est compris entre 1 et 5  
  8. //
  9. function disp_meteo($nb_prev)
  10.  {
  11.  if(($nb_prev < 1) OR ($nb_prev > 5))
  12.     {
  13.  $nb_prev = 1;
  14.  echo "le nombre de prevision est invalide, il est reajusté a une seule prevision<br><\n";
  15.  }
  16.  if(!isset($nb_prev))
  17.   {
  18.  $nb_prev = 1;
  19.  echo "le nombre de prevision n est pas fourni, il est reajusté a une seule prevision<br><\n";
  20.  }
  21.  $prev = Null;
  22.  $a=1;
  23.  if($fp=fopen("http://www.meteoconsult.fr/carte/frag/prevision/selection.php?langue=fr&num_ville=3903", "r" ))
  24.        {
  25.       while(!feof($fp))
  26.             {
  27.         if(!isset($a))
  28.            {
  29.         $a=1;
  30.         }
  31.  
  32.        $start_prev=fgets($fp,4096);
  33.         if(eregi("class=apercu-date>",$start_prev)&&$a<=$nb_prev)
  34.               {
  35.         $prev[$a] = null;
  36.            $prev[$a] .= $start_prev;
  37.            }
  38.    
  39.         if(eregi("<img src=http://www.meteoconsult.fr/image/logo/lwgnpj/",$start_prev)&&$a<=$nb_prev)
  40.             {
  41.            $prev[$a] .=$start_prev;
  42.            }
  43.         if(eregi("class=apercu-temps-new>",$start_prev)&&$a<=$nb_prev)
  44.            {
  45.            $prev[$a] .=$start_prev;
  46.            }
  47.        if(eregi("class=apercu-tempe>",$start_prev)&&$a<=$nb_prev)
  48.           {
  49.            $prev[$a] .=$start_prev;
  50.            }
  51.         if(eregi("class=apercu-tempe-valeur>",$start_prev)&&$a<=$nb_prev)
  52.            {
  53.            $prev[$a] .=$start_prev . "</table>\n" ;
  54.         $a++;
  55.      }
  56.         }
  57.       fclose($fp);
  58.       for ($i=1; $i<=$nb_prev; $i++)
  59.             {
  60.           $prev[$i]=str_replace("<center>","",$prev[$i]);
  61.          $prev[$i]=str_replace("</center>","",$prev[$i]);
  62.  
  63.           $prev[$i]=str_replace("<font class=apercu-date>","<p><font color=\"#000000\">",$prev[$i]);
  64.           $prev[$i]=str_replace("<font class=apercu-temps-new>","<p><font color=\"#aa0000\">",$prev[$i]);
  65.           $prev[$i]=str_replace("<font class=apercu-tempe>","<p><font color=\"#000000\">",$prev[$i]);
  66.           $prev[$i]=str_replace("<font class=apercu-tempe-valeur>","<p><font color=\"#000000\">",$prev[$i]);
  67.  
  68.           $prev[$i]=str_replace("<td height=\"40\" bgcolor=\"#F0A50C\">","<table cellspacing=\"0\" cellpading=\"0\" border=\"0\" width=\"100%\"><tr><td align=\"center\" height=\"40\" bgcolor=\"#F0A50C\">\n",$prev[$i]);
  69.           $prev[$i]=str_replace("<td height=67 align=center>","<tr><td align=\"center\" height=67 bgcolor=\"#FFFFFF\">\n",$prev[$i]);
  70.           $prev[$i]=str_replace("<td height=38>","<tr><td align=\"center\" height=38 bgcolor=\"#FFFFFF\">\n",$prev[$i]);
  71.           $prev[$i]=str_replace("<td height=\"25\" bgcolor=\"#F0A50C\">","<tr><td align=\"center\" height=\"25\" bgcolor=\"#F0A50C\">\n",$prev[$i]);
  72.           $prev[$i]=str_replace("<td height=\"25\" bgcolor=\"#FBD141\">","<tr><td align=\"center\" height=\"25\" bgcolor=\"#FBD141\">\n",$prev[$i]);
  73.           $prev[$i]=str_replace("</td>","</td></tr>",$prev[$i]);
  74.          }
  75.      echo "<table cellspacing=\"0\" cellpading=\"0\" border=\"0\">\n";
  76.      echo "  <tr>\n";
  77.      for ($i=1; $i<=$nb_prev; $i++)
  78.         {
  79.         echo "    <td width=\"100\" valign=\"top\">\n";
  80.         echo $prev[$i];
  81.         echo "</td>";
  82.         }
  83.      echo "  </tr>\n";
  84.      echo "</table>\n";
  85.      }
  86.  }
  87. disp_meteo(3);  // appel de la fontion avec 3 jours de prevision


 
edit : c est les previsions pour paris.
pour d autres villes faut changer l url du fopen


 
si t'as des question hesite pas
 


---------------
icite ca shoot : albphoto.fr   //   la ca bricole : albworkshop.fr  //  A VENDRE Canon ST-E2
Reply

Marsh Posté le 15-07-2005 à 14:52:19    

Salut MetoS
 
J'ai des questions à propos de ce que tu présentes:
 
Pour voir comment je peux modifier ta procedure pour mes besoins, j'ai copié ton code dans une balise <SCRIPT> que j'ai placé dans la partie HEAD
 
mais comment fait on pour faire afficher le résultat dans la partie BODY ( Pour voir j'ai placé aussi le code directe à l'endroit dans BODY )
Dans tous les cas rien ne s'affiche??

Reply

Marsh Posté le 15-07-2005 à 14:59:27    

Si la page est valide xhtml prefere l'utilisation de http://fr.php.net/manual/fr/ref.domxml.php pour effectuer un parsing simple et efficace de ta page.

Reply

Marsh Posté le 15-07-2005 à 15:10:25    

ben j'en sais rien moi si c'est valide ou non je voulais déjà voir ce que faisait cette fonction pour voir
 
maintenant je ne sais pas si ca va m'aider ou non. Je sais pas du tout comment faire ce que je veux  
(j'ai une url distante quand je vais dessus les données qui m'interressent sont statiques mais généré par un truc que j'ai pas acces et quand je fais afficher le code ce qui correspond à l'affichage qui m'interrese se trouve à la fin, je voudrais le réccupérer sur ma page perso)

Reply

Marsh Posté le 15-07-2005 à 15:14:15    

Tu as pensé a verifier si la page en question ne possede pas un flux RSS ? (pardon si la question peut te paraitre bete)

Reply

Marsh Posté le 15-07-2005 à 15:17:17    

tintin34 a écrit :

Salut MetoS
 
J'ai des questions à propos de ce que tu présentes:
 
Pour voir comment je peux modifier ta procedure pour mes besoins, j'ai copié ton code dans une balise <SCRIPT> que j'ai placé dans la partie HEAD
 
mais comment fait on pour faire afficher le résultat dans la partie BODY ( Pour voir j'ai placé aussi le code directe à l'endroit dans BODY )
Dans tous les cas rien ne s'affiche??


 
Tu serais pas un débutant toi par hasard?
Tu l'apelle au moins la fonction?

Reply

Marsh Posté le 15-07-2005 à 15:17:50    

Non elle n'est pas bete mais comment je le vérifie?

Reply

Marsh Posté le 15-07-2005 à 15:18:52    

tintin34 a écrit :

Non elle n'est pas bete mais comment je le vérifie?


 
Bah en allant voire sur le site en question.

Reply

Marsh Posté le 15-07-2005 à 15:18:52   

Reply

Marsh Posté le 15-07-2005 à 15:21:19    

ben j'ai fait un essai d'appel dans le body j'ai mis le nom de la fonction avec le parametre mais visiblement ca ne fait pas l'appel

Reply

Marsh Posté le 15-07-2005 à 15:23:01    

Dans le <head> de la page tu vérifies la presence d'un code similaire a :

Code :
  1. <LINK rel="alternate" type="application/rss+xml" title="HardWare.fr - NEWS (RSS)" href="http://www.hardware.fr/backend/news.xml" />
  2. <LINK rel="alternate" type="application/rss+xml" title="HardWare.fr - ARTICLES (RSS)" href="http://www.hardware.fr/backend/articles.xml" />


(exemple pris de hardware.fr :p)

Reply

Marsh Posté le 15-07-2005 à 17:26:53    

il y a qu'un seul "<LINK" et aucun qui se suit par RSS

Reply

Marsh Posté le 16-07-2005 à 11:33:13    

Quelqu'un pourait il me dire comment je dois procéder pour inclure dans une page html et faire fonctionner, la fonction que MetoS propose à xkamui plut haut
 
j'ai fait plusieurs essais différents dans une page test et il ne s'affiche rien

Reply

Marsh Posté le 16-07-2005 à 16:54:13    

xkamui a écrit :

Voilà ce que je veux faire :  
 
sur un site se trouve les informations voulues, la page est du type http://www.site.com/selection.php?saisie=texte et dedans, les données s'affichent dans un tableau et tout et tout...
 
bon, moi, je veux les 5 cellules qui se trouvetn au millieu de cette page html et les mettre dans des variables pour afficher ces informations sur mon site internet.
 
es-ce possible ??
pouvez vous me mettre sur la voie ??
 
merci @ ceux qui participeront...


 
Si tu nous donnais le site depuis lequel tu veux récupérer les infos ça nous aiderait. :)

Reply

Marsh Posté le 16-07-2005 à 18:28:58    

si c'est à moi qu'on demande sur quel site je veux récupérer des infos:
voila l'url
http://meteo.tf1.fr/meteo/previsio [...] 92,00.html
 
je veux récupérer le bloc météo qui s'inscrit en statique vers la fin du code html (un peu apres la chaine <!-- /Bloc IBL_ID=22307) et l'inclure sur ma page d'acceuil (j'ai par ailleurs un javascript fourni par lasoluce.net
 
merci pour ceux qui peuvent m'aider. l'hébergeur me signale que je pourais pas executer d'appli annexe. Donc le mieux c'est surement une fonction qui récupère le code statique et qui l'épure. c'est dans ce sens que je voulais tester la fonction de MetoS mais j'arrive pas à l'inclure correctement ou bien le code est pas compris par mon environnment

Reply

Marsh Posté le 16-07-2005 à 18:40:25    

J'ai oublié de finir ma phrase concernant le javascript de lasoluce.net, il est moyennement satifaisant car il propose des infos pour une ville qui se trouve à environ 90km du lieu qui m'interresse

Reply

Marsh Posté le 16-07-2005 à 22:27:23    

tintin, le script de metos est du php, pas de l'html ...  
 
Si tu l'as bien mis dans une page php, est-ce que d'autres pages php fonctionnent ?


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 19-07-2005 à 17:51:49    

J'ai compris que c'etait que la fonction de metos est du php
 
1) peut on l'utiliser malgré tout au sein d'une page html
2) sinon peut on la transposer en javascript par exemple
3) sinon comment je peux récupérer les infos météo à l'url que j'ai indiqué plus haut et les intégrer à ma guise sur ma page d'acceuil en html

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed