Faire un tableau en parsant des chaines issues de pages HTML dynamique

Faire un tableau en parsant des chaines issues de pages HTML dynamique - PHP - Programmation

Marsh Posté le 26-03-2010 à 08:23:40    

Bonjour,

 

Mon cas est le suivant : je souhaite pouvoir récupérer les taux de change EUR/MYR Visa quotidiens sur l'année glissante.
J'utilise le site suivant : http://corporate.visa.com/pd/consu [...] _rates.jsp

 

En sniffant avec Tamper Data j'ai pu capter la séquence POST qui est envoyée au JSP pour traiter ma requête:

 

http://corporate.visa.com/pd/consumer_services/consumer_ex_results.jsp?homCur=EUR&forCur=MYR&fee=0&date=04%2F22%2F2009&rate=0&submit.x=97&submit.y=10&submit=Calculate+Exchange+Rates&firstDate=03%2F27%2F2009&lastDate=03%2F26%2F2010&actualDate=04-22-2009

 

J'aimerais pouvoir invoquer ce script pour pouvoir sortir un tableau de 365 cases, chacun contenant le taux de change du jour considéré.

 

Question, comment faire ?

 

Évidemment, pas de problèmes pour générer la chaîne dynamiquement mais comment récupérer le taux de change en sortie ? Cela signifierai parser le fichier HTML résultant pour chopper la chaîne qui m'intéresse (en l'occurrence 1 MYR = xxx EUR).

 

Est-ce que mon raisonnement est bon ?

 

Merci de vos lumières !


Message édité par FLo14 le 26-03-2010 à 08:24:16

---------------
« Franchement si j'étais toi, je... – T'es moi ? – Nan. – Bon bah tu fermes ta gueule alors. »
Reply

Marsh Posté le 26-03-2010 à 08:23:40   

Reply

Marsh Posté le 26-03-2010 à 12:42:17    

Je ne suis pas sur que le site auquel tu "sniffe" le contenu soit d'accord ou sinon dans ce cas la, il doive fournir un rss ou autre pour cela


---------------
Recette cookeo Recette de cuisine
Reply

Marsh Posté le 26-03-2010 à 13:44:33    

Hum les donnees sont accessibles quoiqu'ils adviennent, ma methode permettrait juste de raccourcir le temps necessaire a la recuperation des taux de change. Rien d'illegal a cela ;)


---------------
« Franchement si j'étais toi, je... – T'es moi ? – Nan. – Bon bah tu fermes ta gueule alors. »
Reply

Marsh Posté le 26-03-2010 à 14:37:18    

Toute utilisation partielle ou complète de données d'un site est soumis a acceptation par le "dit" site.
 
Donc si c'est illégal, lis les CGU


---------------
Recette cookeo Recette de cuisine
Reply

Marsh Posté le 26-03-2010 à 15:44:59    

Sinon tes ami sont les regexp.. vas falloir trouver les pattern correspondant à ce que tu recherche pour en extraire les données.
 
Au pire tu pourrait t'en sortir en extrayant tout le tableau, en le striptags-ant + explode etc..
 
Bref plein de solutions possibles


---------------
App Android F1 x MotoGP - Agenda & Alerts : Playstore - TU
Reply

Marsh Posté le 26-03-2010 à 16:13:28    

Si, ça va générer de la charge sur leur serveur. Si tu le fais 1 fois par jour, pas de pb mais imaginons que tu le fasses toutes les secondes, ça va leur créer des pbs et ça peut être assimilée à une "attaque" (envoi d'un grand nb de requêtes qui font tomber le serveur). Bien sûr, ce n'est pas ton but, mais tu dois inforer le site de ton intention. Pour info, Allociné n'apprécie pas les softs de gestion de vidéothèque qui font ce genre de chose.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 26-03-2010 à 17:22:43    

ionik a écrit :

Toute utilisation partielle ou complète de données d'un site est soumis a acceptation par le "dit" site.

 

Donc si c'est illégal, lis les CGU


Bien, merci de ton intervention mais je n'ai nullement demandé un conseil d'ordre juridique.
Et si tu veux t'amuser à trouver la clause : http://www.corporate.visa.com/util [...] -use.shtml

bixibu a écrit :

Sinon tes ami sont les regexp.. vas falloir trouver les pattern correspondant à ce que tu recherche pour en extraire les données.

 

Au pire tu pourrait t'en sortir en extrayant tout le tableau, en le striptags-ant + explode etc..

 

Bref plein de solutions possibles


Oui je me doutais de ça, mais peut-on tout faire en PHP ?

rufo a écrit :

Si, ça va générer de la charge sur leur serveur. Si tu le fais 1 fois par jour, pas de pb mais imaginons que tu le fasses toutes les secondes, ça va leur créer des pbs et ça peut être assimilée à une "attaque" (envoi d'un grand nb de requêtes qui font tomber le serveur). Bien sûr, ce n'est pas ton but, mais tu dois inforer le site de ton intention. Pour info, Allociné n'apprécie pas les softs de gestion de vidéothèque qui font ce genre de chose.


J'ai pensé à ce problème en effet et je suis conscient que je sors des limites normales d'utilisation du site.


Message édité par FLo14 le 26-03-2010 à 17:28:01

---------------
« Franchement si j'étais toi, je... – T'es moi ? – Nan. – Bon bah tu fermes ta gueule alors. »
Reply

Marsh Posté le 26-03-2010 à 17:24:36    

Citation :

Oui je me doutais de ça, mais peut-on tout faire en PHP ?


 
Ce que tu veux faire est tout a fait faisable, et ce, de pleins de manières différentes..
 
Faux juste connaitre les bonnes fonctions de manipulation de chaine / regexp.. et pour ca pas de secrets : php.net


---------------
App Android F1 x MotoGP - Agenda & Alerts : Playstore - TU
Reply

Marsh Posté le 26-03-2010 à 17:30:45    

bixibu a écrit :

Citation :

Oui je me doutais de ça, mais peut-on tout faire en PHP ?


 
Ce que tu veux faire est tout a fait faisable, et ce, de pleins de manières différentes..
 
Faux juste connaitre les bonnes fonctions de manipulation de chaine / regexp.. et pour ca pas de secrets : php.net


Merci de ta réponse :) Je vais me renseigner.


---------------
« Franchement si j'étais toi, je... – T'es moi ? – Nan. – Bon bah tu fermes ta gueule alors. »
Reply

Marsh Posté le 26-03-2010 à 18:19:45    

http://simplehtmldom.sourceforge.net/
 
La solution la plus classe pour ce genre de choses, beaucoup plus clean que de la regexp.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 26-03-2010 à 18:19:45   

Reply

Marsh Posté le 26-03-2010 à 18:41:36    

pas besoin de lib, DomDocument fait la meme chose

Reply

Marsh Posté le 26-03-2010 à 19:14:48    

sielfried a écrit :

http://simplehtmldom.sourceforge.net/
 
La solution la plus classe pour ce genre de choses, beaucoup plus clean que de la regexp.


Thanks ç'a l'air pas mal, je vais tester ça :)

stealth35 a écrit :

pas besoin de lib, DomDocument fait la meme chose


La solution ci-dessus me paraît plus simple non :??:


---------------
« Franchement si j'étais toi, je... – T'es moi ? – Nan. – Bon bah tu fermes ta gueule alors. »
Reply

Marsh Posté le 26-03-2010 à 20:41:15    

si ca te derrange pas d'utiliser une lib alors oui

Reply

Marsh Posté le 26-03-2010 à 21:38:26    

sielfried a écrit :

http://simplehtmldom.sourceforge.net/
 
La solution la plus classe pour ce genre de choses, beaucoup plus clean que de la regexp.


 
Sympa cette lib , je connaissais pas, merci  :)  


---------------
App Android F1 x MotoGP - Agenda & Alerts : Playstore - TU
Reply

Marsh Posté le 29-03-2010 à 12:53:01    

stealth35 a écrit :

pas besoin de lib, DomDocument fait la meme chose


 
Sauf que DomDocument chiale (à raison, mais en l'occurrence ça n'aide pas) si le HTML est mal formé, mal déclaré (voire si c'est pas du X(HT)ML, tout simplement).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-03-2010 à 13:50:05    

c'est pareil avec la lib, c'est baser sur des regexp, ca sera meme encore pire, meme avec un html mal former ton navigateur arrive a l'ouvrir et rend ce qui peu (souvent bien meme), DomDocument fais la même chose

Reply

Marsh Posté le 29-03-2010 à 14:49:33    

stealth35 a écrit :

c'est pareil avec la lib, c'est baser sur des regexp, ca sera meme encore pire, meme avec un html mal former ton navigateur arrive a l'ouvrir et rend ce qui peu (souvent bien meme), DomDocument fais la même chose


 
Je connais que SimpleXML en l'occurrence (DOMDocument était super lourd niveau code dans mes souvenirs, mais je confonds peut-être). SimpleXML n'acceptera jamais une page html comme celle que FLo14 cite.
 
Et d'expérience, simple_html_dom est particulièrement efficace même sur les fichiers HTML mal formés (après j'ai pas regardé le code des regexp derrière, je sais juste que ça marche super bien).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-03-2010 à 14:56:56    

Citation :


Je connais que SimpleXML en l'occurrence (DOMDocument était super lourd niveau code dans mes souvenirs, mais je confonds peut-être). SimpleXML n'acceptera jamais une page html comme celle que FLo14 cite.


Je confirme, j'ai été confronté au prblème ya pas une semaine.. donc la lib cité me parait prometteuse, je testerais ca dès que j'ai un petit moment.


Message édité par bixibu le 29-03-2010 à 14:57:13

---------------
App Android F1 x MotoGP - Agenda & Alerts : Playstore - TU
Reply

Sujets relatifs:

Leave a Replay

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