Flux de données

Signaler
Messages postés
6
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
cs_Shune
Messages postés
6
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
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

Messages postés
55
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2009

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 ^^
Messages postés
6
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
13 mai 2009

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
Messages postés
6
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
13 mai 2009

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
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
22
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 -
Messages postés
55
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2009

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 =)
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
22
@willeraser :
Il y a plus facile (mais plus risqué) que cURL
=>
Peut on savoir à quoi tu penses ??

Cordialement,

Kohntark -
Messages postés
55
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
6 mai 2009

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 !
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
22
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 -
Messages postés
6
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
13 mai 2009

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)