Flux de données

cs_Shune Messages postés 6 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 13 mai 2009 - 30 avril 2009 à 11:43
cs_Shune Messages postés 6 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 13 mai 2009 - 13 mai 2009 à 10:16
Bonjour,

Je débute totalement en Web Développement et me voici
embarqué dans un gros projet :)

Je ne sais pas si je suis vraiment dans la bonne section pour poser ma question, alors veuillez m'en excuser.

Mon problème est le suivant :

Je
dois créer une interface d'interrogation avec plusieurs critères de
recherche par exemple (je dis n'importe quoi) : couleur. Une fois ce
champs rempli par l'utilisateur, je dois envoyer cette requête à
quelques bases de données en ligne via leur formulaire d'interrogation.
En extraire le fichier HTML retourné pour chacune d'elle et enfin en
extraire les informations qui m'intéresse.

Mon problème est : comment envoie-t-on des informations à un formulaire qui n'est pas le notre et qui sont de forme diverses?
 Pour
certaines bases, en passant les paramètres de la requête directement
dans l'url, mon problème est résolu, mais pas pour toute et je ne sais
vraiment pas dans quelles directions chercher. Peut-être du côté de:
http_request et/ou curl_setopt ?

Et enfin 2ème question (subsidiaire) penser vous que le langage PHP soit le plus adapté à mon problème?

Merci d'avance de toutes vos réponses.

9 réponses

willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
2 mai 2009 à 19:59
Tu veux qu'à partir de ton formulaire, les données soient transmises à un formulaire déjà existant (qui n'est pas le tien), qui devra être rempli et lancé automatiquement en contenant tes données, puis que les résultats que te renverront les formulaires qui ne sont pas les tiens soient récupérés (au format HTML) et parsés afin d'en extraire ce qui t'interesse puis d'afficher ce résultat sur ta page web ?
Cela s'apparente à un robot ^^
0
cs_Shune Messages postés 6 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 13 mai 2009
4 mai 2009 à 09:10
Oui apparemment c'est cela, il me faut implémenter un robot
Quelqu'un pourrait-il m'orienter dans cette voie (Documentation, tutoriel, exemple d'implémentation... ) ?

Merci
0
cs_Shune Messages postés 6 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 13 mai 2009
5 mai 2009 à 15:21
up !

je suis en train de me familiariser avec le PHP, puis ce sera au tour du JavaScript, mais quelqu'un pourrait-il m'orienter sur la voie du "robot" (Documentation, tutoriel, exemple d'implémentation... ) ?

Encore merci
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
5 mai 2009 à 19:13
Salut,

A mon avis oublie le robot.
Un robot c'est un terme ultra générique pour désigner un programme qui tourne seul (chui large là) inutile donc de faire des recherches là dessus, tu vas tomber sur tout et n'importe quoi.

Je pense que le mieux est d'utiliser cURL.
Pour ce qui est de la façon de soumettre le formulaire c'est à toi d'étudier le code de chaque site en t'appuyant sur l'analyse des trames envoyées / reçues.

Par contre si "tu débutes totalement" tu risques de galérer.

Cordialement,

Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
5 mai 2009 à 21:24
Il y a plus facile (mais plus risqué) que cURL pour récupérer un contenu distant, bien que cURL soit parfaitement adapté.  C'est déjà une première piste pour toi.

Pour l'analyse du résultat, il te faut un gros moteur de parsing, avec regex en pagaille. Les regex seront pas particulièrement compliquées, mais bon, si les sites qui te renvoient les résultats sont très différents les uns des autres, tu pourrais avoir beaucoup de petites regex.

Tu pourrais aussi prier pour que les résultats qui te seront renvoyés soient du XML/XSLT, à ce moment là, ça serait méga simple (mais là, on peut rêver , presque personne n'utilise ça ).

Par contre, si tu débutes à peine avec le PHP, c'est peut être un peu gros comme projet pour un début...

Si tu veux essayer de rechercher des cas plus ou moins similaires au tien, tu peux chercher parmis les moteurs de recherche (web crawlers) dans le sens où eux aussi se connectent de façon automatique à des sites distants, en récupèrent le contenu et analysent le code récupéré (méta-tags en l'occurence, bien qu'ils tombent en désuétude) pour venir alimenter une base de données.

Toi tu ne veux ni automatiser les récupérations ni mémoriser les données reçues, mais ça te donnera déjà une idée du principe de connexion/récupération/parsing.

Pour aller plus loin dans le parsing qui n'est pas forcément évident quand on débute, tu peux essayer de t'inspirer des exemples de BBcode, tu sais les codes utilisés sur les forums phpBB qui simulent des pseudo-balises.

Il y a de multiples façons de procéder pour ton projet ! Et c'est un projet interessant ! Bonne chance =)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
5 mai 2009 à 23:49
@willeraser :
Il y a plus facile (mais plus risqué) que cURL
=>
Peut on savoir à quoi tu penses ??

Cordialement,

Kohntark -
0
willeraser Messages postés 55 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 6 mai 2009
6 mai 2009 à 02:24
Tu gueules pas si jle dis ?

fopen() + allow_url_fopen dans le php.ini (d'où le "plus risqué")

S'il veut télécharger un fichier distant, c'est largement suffisant même si c'est [très très] moche (soyons honnêtes).
Ca peut gérer tout type de requête HTTP, y compris les variables dans l'URL, donc à première vue, ça gaze. Alors après, bien sûr, fopen a ses propres limites et cURL permet d'aller beaucoup plus loin mais ma technique a l'avantage d'être mise en place en 10 secondes chrono.
cURL n'est pas installé par défaut sur les serveurs mutualisés, puis peut être qu'il ne préfère pas installer cURL sur un serveur dédié de peur de faire une connerie ^^.

Enfin bien sûr, attention, je préconise cURL hein !
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
6 mai 2009 à 07:29
Enfin bien sûr, attention, je préconise cURL hein !

=>
arf, j'aime mieux ça, parce que je ne vois pas comment tu peux faire pour soumettre un formulaire en POST, gérer les cookies, les redirections, etc ... Ce sont des choses auxquelles Shune va forcement être confronté.

Autant il y a des sites qui permettent de passer les variables dans l'URL et dans ce cas c'est très simple à réaliser, autant il y en a d'autres qui protègent les formulaires avec des tonnes d'artifices : multiples redirections, cookies, vérif user-agent, intégration de javascript, Ajax, captcha, j'en passe et des meilleures. Et là ça devient vraiment costaud !!
... même chose pour le parsing.

Au fait Shune, simple question : t'es tu renseigné sur la légalité d'interroger ainsi ces sites ? De manière générale ce n'est pas permis.

T'as vu Willeraser, j'ai même pas gueulé (une fois n'est pas coutume)

Cordialement,

Kohntark -
0
cs_Shune Messages postés 6 Date d'inscription mardi 25 décembre 2007 Statut Membre Dernière intervention 13 mai 2009
13 mai 2009 à 10:16
Merci à vous 2 pour ces réponses. En fait, je vais récupéré les informations formatés (tsv, csv, xml...) des différentes bases de données, et faire un gros "data warehousing". Oui ce projet est intéressant, et il est possible de procéder de diverses manières, j'aimerais trouvé les mieux (utopiste, moi :o ?!)

>>> Au fait Shune, simple question : t'es tu renseigné sur la légalité
d'interroger ainsi ces sites ? De manière générale ce n'est pas permis.

Oui, c'est des données qui sont en libre utilisation pour les non-commerciaux (comme les centre de recherche public où je suis ^_^)

Merci à vous 2, je repasserais par là, comme vous le dites je suis débutante et je vais bien galérer (pour parler poliment)
0
Rejoignez-nous