Recuperer une valeur sur une page

Eléphanteau du PHP | 14 Messages

07 juin 2010, 19:12

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

ViPHP
ViPHP | 5462 Messages

07 juin 2010, 19:15

Hello,
pour parser du html et c'est via DomDocument et Xpath

Eléphanteau du PHP | 14 Messages

07 juin 2010, 19:28

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

ViPHP
ViPHP | 5462 Messages

07 juin 2010, 20:24

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 ?

Eléphanteau du PHP | 14 Messages

07 juin 2010, 20:38

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

ViPHP
ViPHP | 5462 Messages

07 juin 2010, 20:41

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

Eléphanteau du PHP | 14 Messages

07 juin 2010, 20:57

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?

ViPHP
ViPHP | 5462 Messages

07 juin 2010, 21:00

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

Eléphanteau du PHP | 14 Messages

07 juin 2010, 21:20

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?

Eléphanteau du PHP | 14 Messages

07 juin 2010, 21:42

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

ViPHP
ViPHP | 5462 Messages

07 juin 2010, 23:23

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

Eléphanteau du PHP | 14 Messages

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);

ViPHP
ViPHP | 5462 Messages

07 juin 2010, 23:43

loadHTMLFile pardon

Eléphanteau du PHP | 14 Messages

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é ?

ViPHP
ViPHP | 5462 Messages

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)