Faire un tableau en parsant des chaines issues de pages HTML dynamique - PHP - Programmation
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
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
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
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
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.
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.
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
Marsh Posté le 26-03-2010 à 17:30:45
bixibu a écrit :
|
Merci de ta réponse Je vais me renseigner.
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.
Marsh Posté le 26-03-2010 à 18:41:36
ReplyMarsh Posté le 26-03-2010 à 19:14:48
sielfried a écrit : http://simplehtmldom.sourceforge.net/ |
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
Marsh Posté le 26-03-2010 à 21:38:26
sielfried a écrit : http://simplehtmldom.sourceforge.net/ |
Sympa cette lib , je connaissais pas, merci
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).
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
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).
Marsh Posté le 29-03-2010 à 14:56:56
Citation :
|
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.
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. »