Page 1 sur 2

Recuperer une valeur sur une page

Posté : 07 juin 2010, 19:12
par pingooo67
Bonjour,

Je souhaiterais récuperer une valeur qui est sur une page distante afin de l'utiliser pour mon analyse personnel.

Voici mon code :

Code : Tout sélectionner

$prev = Null; if ($fp=@fopen("http://**", "r" )) { while(!feof($fp)) { $start_prev=fgets($fp,10000); // echo $start_prev; if (mb_eregi('TEXT',$start_prev)) { $prev .= $start_prev; } } fclose($fp); $recup= substr($prev, 1); echo $recup; }
Le problème est que la valeur que je souhaite récupérer est deux lign plus bas sur la page source :

Code : Tout sélectionner

<td class="gras"><a rel="rowlink" href="**">TEXT</a></td> <td align="center"><img src=".gif" border="0" title="Données"></td> <td align="right">39.075</td>
39.075 est la valeur que je souhaite récuperer et la seul chose qui peux me permettre d'itentifier la valeur est "`TEXT"

Pouvez-vous m'aider SVP

Merci

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 19:15
par stealth35
Hello,
pour parser du html et c'est via DomDocument et Xpath

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 19:28
par pingooo67
Ok merci je viens d'y faire un tour mais j'ai du mal à comprendre le prncipe de fonctionnement peux tu m'aider dans mon exemple?

Merci

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 20:24
par stealth35
Ok merci je viens d'y faire un tour mais j'ai du mal à comprendre le prncipe de fonctionnement peux tu m'aider dans mon exemple?

Merci

pour les exemples regarde dans ceux de domxpath, pour ta requête ca devrais être :
//a[text()="TEXT"]/../../td[position()=3]/text()

c'est pas un truc de bourse ?

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 20:38
par pingooo67
Si c'est ca je me fait un petit tableau de bord perso mais il me faut les données en temps réel "ou presque"...

Je vais vraiment avoir l'air d'un idiot mais je comprend pas ton code

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 20:41
par stealth35
Si c'est ca je me fait un petit tableau de bord perso mais il me faut les données en temps réel "ou presque"...

Je vais vraiment avoir l'air d'un idiot mais je comprend pas ton code
en gros
$html = '<html><td class="gras"><a rel="rowlink" href="**">TEXT</a></td>
<td align="center"><img src=".gif" border="0" title="Données"></td>
<td align="right">39.075</td></html>';
    
    $dom = new DomDocument();
    $dom->loadHTML($html);
    
    $xpath = new DomXPath($dom);
    $item  = $xpath->query('//a[text()="TEXT"]/../../td[position()=3]/text()')->item(0);
    
    var_dump($item->nodeValue);  
sauf que toi tu fera loadHTMLFile() avec en paramètre l'URL,
mais bon oublie tout ca et utilise des vrai donnée et une vrai API comme celle de google par exemple qui est fais exprès pour ca :wink:
(il me semble que j'ai déjà traiter se sujet...)

EDIT c'etait ce sujet la : php-debutant/aller-chercher-une-valeur- ... 51779.html

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 20:57
par pingooo67
Mon but est en réalité d'utiliser plusieurs formules mathématique(que j'ai crée) sur des données en temps réel pour me donner des indications sur différents marchés pour étudier et cibler sur mon activité...

Comment Google finance peut m'aider pour récuperer dans une base sql les données en temps réel?

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 21:00
par stealth35
Mon but est en réalité d'utiliser plusieurs formules mathématique(que j'ai crée) sur des données en temps réel pour me donner des indications sur différents marchés pour étudier et cibler sur mon activité...

Comment Google finance peut m'aider pour récuperer dans une base sql les données en temps réel?
pourquoi tu voudrais les récupérer dans un base SQL ? normalement avec le service google tu peux récupérer tout les chiffres sur le temps que tu veux et faire tes calcules
ta la doc ici : http://code.google.com/intl/fr/apis/fin ... tocol.html

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 21:20
par pingooo67
Je viens de lire la page mais je ne vois pas comment récuperer les valeurs en temps réel pour les utiliser comme je le souhaite?

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 21:42
par pingooo67
Je n'arrive pas à récuperer le code source de la page pour l'utiliser comme tu me l'as indiqué, voici mon code :

Code : Tout sélectionner

if ($fp=fopen("http://**", "r" )) { $html = $fp; $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); }
voici l'erreur :

Code : Tout sélectionner

Warning: DOMDocument::loadHTML() expects parameter 1 to be string, resource given in
Merci beaucoup

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 23:23
par stealth35
tout simpel comme ca (pas besion de fopen)
$dom->loadHTML('tonurl');

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 23:41
par pingooo67
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

Posté : 07 juin 2010, 23:43
par stealth35
loadHTMLFile pardon

Re: Recuperer une valeur sur une page

Posté : 07 juin 2010, 23:50
par pingooo67
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

Posté : 07 juin 2010, 23:58
par stealth35
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)