Recuperer une valeur sur une page

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recuperer une valeur sur une page

Re: Recuperer une valeur sur une page

par pingooo67 » 08 juin 2010, 21:34

Bonsoir,

J'ai testé toute la journée cependant j'ai une dernière question :
Comment réactualiser la page en cas d'erreur ?
Voici l'erreur :

Code : Tout sélectionner

Notice: Trying to get property of non-object in
Je suppose qu'il y a un problème lors de la récupération du code source et donc je souhaite réactualiser, se qui n'est pas un problème sauf que je ne sais pas comment dire qu'il y a eu un echec lors de la copie...

Pouvez-vous m'aider ?

Merci

Re: Recuperer une valeur sur une page

par pingooo67 » 08 juin 2010, 01:23

Super merci beaucoup pour ton aide!!

:D :D

Re: Recuperer une valeur sur une page

par stealth35 » 08 juin 2010, 01:01

Cela fonctionne :D MERCI

Dernière petite question, j'aimerais extraire simplement le resultat et supprimer : string(9)

J'ai essayer avec :

Code : Tout sélectionner

substr($val, 11, 4);
echo $item->nodeValue;

Re: Recuperer une valeur sur une page

par pingooo67 » 08 juin 2010, 00:55

Cela fonctionne :D MERCI

Dernière petite question, j'aimerais extraire simplement le resultat et supprimer : string(9)

J'ai essayer avec :

Code : Tout sélectionner

substr($val, 11, 4);

Re: Recuperer une valeur sur une page

par stealth35 » 08 juin 2010, 00:34

ouai :D
<tr onclick="document.location.href='/cours.phtml?symbole=1rPAC'" id="btable1275949971_row0"  class="L10">
<td align="center"><img src="http://img.boursorama.com/i/block/flechedown.gif" width="7px" height="9px" border="0" alt="" /></td>
<td class="gras"><a rel="rowlink" href="/cours.phtml?symbole=1rPAC">ACCOR</a></td>
<td align="center"><img src="http://img.boursorama.com/i/delay_R.gif" border="0" title="Données temps réel"></td>
<td align="right">38.875(c)</td>
<td class="gras" align="right"><span class="color2">-0.75%</span></td>

<td align="right">38.640(c)</td>
<td align="right">39.685(c)</td>
<td align="right">38.600(c)</td>
<td class="gras" align="center"><span class="color3">+1.63%</span></td>
<td align="right">751 813</td>
</tr>
//a : va chercher toutes les balises de type "a" (donc lien)
text() : c'est ne texte a l'interieur du noeud <div>coucou<div> /div/text() = coucou

//a[text()="ACCOR"] : ducoup ca chercher tout les lien qui comprend ACCOR dans le noeud

//a[text()="ACCOR"]/.. : va chercher le noeud parent donc ici le "td"

//a[text()="ACCOR"]/../.. : va chercher le noeud parent du "td" donc le "tr"

//a[text()="ACCOR"]/../../td : va chercher tout les "td" dans le "tr"

//a[text()="ACCOR"]/../../td[position()=4] : va chercher le "td" qui est a la 4eme position

//a[text()="ACCOR"]/../../td[position()=4]/text() : va chercher son texte


donc a l'envers : va chercher le texte dans le 4eme noeud du parent du parent du lien dont le texte est égale a "ACCOR" :mrgreen:

Re: Recuperer une valeur sur une page

par pingooo67 » 08 juin 2010, 00:25

Peux tu m'expliquer le fonctionnement d'une requete "xpath" ?

J'ai essayer de la comprendre à travers le lien que tu m'as donné, également en faisant des tests mais j'ai du mal à comprendre la syntaxe??

Code : Tout sélectionner

$xpath->query('//a[text()="ACCOR"]/../../td[position()=3]/text()')->item(0);

Re: Recuperer une valeur sur une page

par stealth35 » 08 juin 2010, 00:18

la requete xpath n'est pas bonne, puisque les données ne sont pas ce que tu avais mis au debut (et que la page n'est pas valide) :wink:

fais
libxml_use_internal_errors(true);
      
$dom = new DomDocument();
$dom->loadHTMLFile('http://www.boursorama.com/tableaux/cours_az.phtml?MARCHE=1rPCAC');
    
$xpath = new DomXPath($dom);
$item  = $xpath->query('//a[text()="ACCOR"]/../../td[position()=4]/text()')->item(0);
    
var_dump($item->nodeValue);

Re: Recuperer une valeur sur une page

par pingooo67 » 08 juin 2010, 00:15

ok, j'ai donc utilisé "libxml_use_internal_errors(true);" :

Code : Tout sélectionner

libxml_use_internal_errors(true); $html = "http://www.boursorama.com/tableaux/cours_az.phtml?MARCHE=1rPCAC"; $dom = new DomDocument(); $dom->loadHTMLFile($html); $xpath = new DomXPath($dom); $item = $xpath->query('//a[text()="ACCOR"]/../../td[position()=3]/text()')->item(0); var_dump($item->nodeValue);
Et voici l'erreur :

Code : Tout sélectionner

Notice: Trying to get property of non-object in NULL
Ou est le problème?

Re: Recuperer une valeur sur une page

par stealth35 » 08 juin 2010, 00:08

Je ne comprend pas la page est bien valide....
http://www.boursorama.com/tableaux/cour ... CHE=1rPCAC

Le problème c'est qu'il n'y a pas beaucoup de valeur (CAC40, ...)

et non

http://validator.w3.org/check?uri=http% ... ne&group=0

Re: Recuperer une valeur sur une page

par pingooo67 » 08 juin 2010, 00:05

Je ne comprend pas la page est bien valide....
http://www.boursorama.com/tableaux/cour ... CHE=1rPCAC

Le problème c'est qu'il n'y a pas beaucoup de valeur (CAC40, ...)

Re: Recuperer une valeur sur une page

par stealth35 » 07 juin 2010, 23:58

Peux tu m'en dire plus :

Code : Tout sélectionner

Warning: DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: htmlParseEntityRef: expecting ';' in
c'est parce que la page html n'a pas valide, faut faire avant l'ouverture
libxml_use_internal_errors(true);
Petite question au sujet de Google finances, l'as tu utilisés ?
Quel en est réellement l'utilité ?
concrètement non, mais pour faire des test oui, l'utilité c'est que c'est pour qu'on récupère les données simple au lieu de bidouillé a allé cherché ca sur d'autre site :wink: (comme le module méteo c'est pareil, au lieu de parser la page meteo france, tu va chercher un xml avec ce que tu veux dedan)

Re: Recuperer une valeur sur une page

par pingooo67 » 07 juin 2010, 23:50

Peux tu m'en dire plus :

Code : Tout sélectionner

Warning: DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: htmlParseEntityRef: expecting ';' in
Petite question au sujet de Google finances, l'as tu utilisés ?
Quel en est réellement l'utilité ?

Re: Recuperer une valeur sur une page

par stealth35 » 07 juin 2010, 23:43

loadHTMLFile pardon

Re: Recuperer une valeur sur une page

par pingooo67 » 07 juin 2010, 23:41

Merci pour ton aide mais j'arrive toujours pas à récuperer lla valeur, voici l'erreur :

Code : Tout sélectionner

Notice: Trying to get property of non-object in
Mon code :

Code : Tout sélectionner

$html = 'http://**'; $dom = new DomDocument(); $dom->loadHTML($html); $xpath = new DomXPath($dom); $item = $xpath->query('//a[text()="ACCOR"]/../../td[position()=3]/text()')->item(0); var_dump($item->nodeValue);

Re: Recuperer une valeur sur une page

par stealth35 » 07 juin 2010, 23:23

tout simpel comme ca (pas besion de fopen)
$dom->loadHTML('tonurl');