Scrapping

Scrapping - HTML/CSS - Programmation

Marsh Posté le 02-10-2011 à 22:41:11    

Bonsoir,
 
Je suis debutant en programation et je souhaiterais apprendre à pouvoir recuperer des informations de manière automatisée (via un script ? )
 
Exemple d'utilisation potentielle (il se peut que des api existent mais ce sont des exemples).
 

  • Recuperer automatiquement les retards sur le site des aeroports
  • Recuperer le noms des medecins sur une ville donnée via les pagesjaunes
  • ...


Le soucis est que je ne sais pas du tout ce qu'il convient d'apprendre pour faire cela, étant donné qu'il doit y avoir des pratiques existantes.
 
Merci :)

Reply

Marsh Posté le 02-10-2011 à 22:41:11   

Reply

Marsh Posté le 02-10-2011 à 23:58:18    

Si les informations que tu cherches sont sur une page qui ne change pas d'url, il te suffit de faire un programme qui telecharge la page et qui parse le code html pour recuperer les infos la ou elles se trouvent.
Tu peux faire ca en n'importe quel langage du moment que tu trouves une lib de parsing html/xml.


Message édité par Pascal le nain le 02-10-2011 à 23:58:42
Reply

Marsh Posté le 03-10-2011 à 00:41:31    


A vrai dire il faut remplir une requête via un formulaire et ce sont les réponses à la requete qui m'interesse.

 

Non l'url n'est pas fixe (c'est du charabia et coller l'adresse sans la requete precedente, n'apporte rien)


Message édité par kobeno le 03-10-2011 à 00:43:07
Reply

Marsh Posté le 03-10-2011 à 09:39:56    

Il faut que tu inclues les parametres POST ou GET dans la requete

Reply

Marsh Posté le 03-10-2011 à 23:20:58    

Citation :

Bonjour, merci pour ta réponse.
 
Pourrais tu aussi me dire qu'elle langage cela concerne ? Je debute vraiment, et je ne sais pas quel langage il faudrait que j'apprenne.
 
Merci :)


 
 
Moi je le ferai en java avec SAX ou DOM, mais ya peut-etre plus simple. Quel est ton niveau actuel ? C'est pas forcement facile.

Reply

Marsh Posté le 04-10-2011 à 00:27:11    

Je suis débutant. Je ne connais bien que le vb et le html.

 

Mais je ne demande qu'à apprendre.


Message édité par kobeno le 04-10-2011 à 00:27:35
Reply

Marsh Posté le 04-10-2011 à 01:03:50    

En PHP ca semble etre assez simple :
http://simplehtmldom.sourceforge.net/
 
L'avantage du php c'est que ca s'apprend en 1 heure  ;)

Message cité 1 fois
Message édité par Pascal le nain le 04-10-2011 à 01:04:24
Reply

Marsh Posté le 05-10-2011 à 11:15:02    

Il y aura la possibilité de remplir un formulaire et de simuler un clic sur le bouton valider, le tout automatiquement ?
 
Si oui je crois que c'est bon. :)

Reply

Marsh Posté le 05-10-2011 à 12:16:52    

Le formulaire n'est que le moyen "humain" de donner des parametres à la page suivante.
Il suffit d'appeler la page suivante directement avec les parametres que l'on désire.

Reply

Marsh Posté le 05-10-2011 à 13:21:04    

La lib Snoopy en php est bien aussi pour récupérer le contenu de pages web. Y'a aussi SimpleTest qui est une sorte de mini navigateur web textuel en php. A la base, c'est pour automatiser des tests (TU et TI) mais il propose pleins de fonctions pour analyser le code html issue d'une appli web ;)


---------------
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 05-10-2011 à 13:21:04   

Reply

Marsh Posté le 05-10-2011 à 14:24:58    

Le soucis c'est est que la adresse de la page ne correspond pas à une requête précise. C'est comme sur le site de la sncf, il n'y a pas de lien pour un train Lyon paris pour mardi prochain par exemple.

Reply

Marsh Posté le 05-10-2011 à 14:31:10    

parce que ce sont des formulaires en POST. Avec snoopy ou simpleTest, suffit de simuler les actions que ferait un humain sur l'ihm pour arriver à la page souhaitée ;)
 
Vérifiée que par hasard, y'aurait pas des API web ouvertes...


Message édité par rufo le 05-10-2011 à 14:31:52

---------------
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 05-10-2011 à 14:47:42    

Je n apprends pas pour un site en particulier donc la question de l api ne se pose pas. Merci pour vos réponses en tout cas  
 

Reply

Marsh Posté le 05-10-2011 à 14:47:47    

Je n apprends pas pour un site en particulier donc la question de l api ne se pose pas. Merci pour vos réponses en tout cas  
 

Reply

Marsh Posté le 06-10-2011 à 10:06:16    

Pascal le nain a écrit :

En PHP ca semble etre assez simple :
http://simplehtmldom.sourceforge.net/
 
L'avantage du php c'est que ca s'apprend en 1 heure  ;)


 
Ta lib, elle gère le dom mis à jour par du javascript/ajax?


---------------
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 06-10-2011 à 10:39:43    

Je ne l'ai jamais utilisée.
C'est un parseur php, la lib va chercher le fichier statique et le parse.
A aucun moment un javascript ne s'execute.


Message édité par Pascal le nain le 06-10-2011 à 10:41:21
Reply

Marsh Posté le 06-10-2011 à 10:42:24    

c'est ce que je me disais :(


---------------
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 06-10-2011 à 12:24:05    

Ca pose probleme ?

Reply

Marsh Posté le 06-10-2011 à 14:44:26    

oui, l'appli que je voudrais "piloter" via php est tout en ajax :( Quelle saloperie, je te jure. J'ai juste une seule url, après, c'est tout du JS qui génère le contenu à la volée...


---------------
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 06-10-2011 à 15:43:15    

Si c'est de l'ajax, il te suffit de récupérer l'url des fichiers qui contiennent les données qui t'intéressent, et de les appeler directement... Où est le soucis ?


Message édité par Pascal le nain le 06-10-2011 à 15:43:36
Reply

Marsh Posté le 06-10-2011 à 15:58:38    

Je comprends pas ce que tu dis :
J'appelle l'url de l'appli. Là, y'a un formulaire généré par du javascript qui me demande mon login/mdp. Moi, je veux pourvoir les saisir via un script php. Ensuite, pour poster le formulaire, faut cliquer sur un <button> (pas un input type submit) qui poste le formulaire mais via une fonction javascript. Je veux donc pouvoir cliquer sur ce bouton via php.
 
Le but est de ne pas à devoir farfouiller dans le code source pour savoir ce que chaque fonction js fait :/
 
SimpleTest marche très bien pour cliquer sur des formulaires en html mais pas en JS :(


---------------
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 06-10-2011 à 16:29:26    

1- Télécharge firebug.
2- Charge ton formulaire et remplis-le.
3- Ouvre l'onglet Réseau de firebug.
4- Valide le formulaire.
5- Une nouvelle ligne va apparaitre dans firebug, elle correspond à la requete ajax faite pour soumettre le formulaire. Dedans tu as la page appelée, ainsi que la méthode utilisée, les parametres fournis.
 
Il te suffit alors d'appeler en php cette page avec les meme parametres, pour normalement obtenir le meme résultat !

Reply

Marsh Posté le 06-10-2011 à 17:14:13    

je vais essayé, j'y avais pas pensé, merci :)


---------------
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 07-10-2011 à 01:44:14    

@ pascal le nain ?
 
C'est une autre méthode que tu décris ?

Reply

Marsh Posté le 07-10-2011 à 08:36:26    

Non c'est juste le moyen d'obtenir les parametres necessaires dans le cas ou il y en ait besoin

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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