| Qui est en ligne ? |
| Il y a : 22 utilisateurs en ligne, consultez le détail |
Forum » Serveur, Réseaux et Programmation » realisation d'un script pour recuperer des info sur un site web |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 28-06-2007 à 23:27:54 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 26-10-2006 Nombre de messages : 57 |
Bonjour , je souhaiterais realiser un script me permettant de me connecter sur site web et de recuoerer des informations automatiquement 1) est ce possible de faire ce genre de chose ? ( je precise que sur le dit site il faut un login/pass pour se connecter) 2) si oui avec quel langage ? ( bash , pytohn perl ..) 3) des exemples , des scipt utilisant ce procedé d'avance merci ------------------------------------- On est toujours le newbie de quelqu"un. |
|
|
#1 Message posté le : 29-06-2007 à 00:12:25 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
C'est possible, nous l'avions fait dans une asso de chez nous pour capturer un catalogue. Le souci est que ça te rend énormément dépendant du site. Pour le login et mot de passe, ça corse l'affaire. Il faut que tu regarde le mode d'authentification. Si c'est une authentification HTTP (.htaccess) ce sera facile. Si c'est via un formulaire, il faudra regarder comment il est fait et comment il envoie la requête. Dans le pire des cas, il est dynamique et on programme devra faire un calcul sur le formulaire de connexion. Si le site est simple, bash peut suffire. S'il est un peu plus évolué, tu vas galérer. Je pense que dans ton cas, python est le plus adapté. Dans l'asso dont je parlais, on faisait ça en PHP car c'était pour une appli web. J'essaierai de choper un bout de code, je n'ai pas là sous la main. D'un point de vue général, tout dépend énormément du site en question, ça reste un système peu fiable en production. L'essentiel du travail consistera à récupérer le HTML (facile), le parser et y trouver l'information (le plus dur), puis traiter l'info. ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
|
|
#2 Message posté le : 29-06-2007 à 12:53:21 |
Naboo Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 2085 |
Il doit y avoir moyen de faire ça avec telnet, tout dépend de la connaissance que tu as du site. Si tu sais à peu près comment il fonctionne, tu ne devrais pas avoir de pb.
$ telnet example.org 80 > POST /script/qui/gère/la/connection.php HTTP/1.1 > Connection: Keep-Alive > Host: example.org > Referer: http://example.org/la/page/où/est/le/formulaire/de/connexion.html > Content-Length: <la taille de la suite> > > username=toto <- nom des champs à trouver dans le formulaire > userpwd=*** > > # il te répond oui tu es bien connecté > GET /ta/page > > Connection: Close $ Voilà un bref récapitulatif des commandes HTTP dont tu devrais avoir besoin. --Message édité par Azollyx le 29-06-2007 à 12:53:40-- ------------------------------------- toto |
|
|
#3 Message posté le : 29-06-2007 à 13:52:30 |
Hobbit Forum : Modérateur Association : Membre actif Arrivé(e) le : 11-08-2003 Nombre de messages : 1533 |
salut, tu as tout bonnement wget qui permet de faire cela, avec login/password : --http-user --http-passwd http://www.cbi.pku.edu.cn/Doc/CS/wget/man.wget.html ------------------------------------- |
|
|
#4 Message posté le : 29-06-2007 à 13:54:28 |
Hobbit Forum : Modérateur Association : Arrivé(e) le : 20-11-2003 Nombre de messages : 1576 |
Sinon, si tu veux pas te faire chi** à coder du HTTP, ou si tu as besoin d'identifier les éléments HTML (donc parser le conten), tu peux utiliser un framework comme HtmlUnit (en Java). Ca émule un navigateur plutôt bien, sauf si il y a trop de JavaScript. http://htmlunit.sourceforge.net Je m'en sers régulièrement, donc si tu veux un exemple, il n'y a pas de problème. ------------------------------------- Morgoth |
|
|
#5 Message posté le : 29-06-2007 à 14:40:00 |
Hobbit Forum : Inscrit Association : Arrivé(e) le : 17-10-2003 Nombre de messages : 1067 |
Sauf qu'il faut mettre java et que java c'est pas dans les distributions linux par défaut donc c'est pas standard (non je ne déteste pas java je le hais tout simplement Je trouve qu'utiliser java pour faire un script aussi simple c'est exagéré. Python est par défaut installé sur les distribs linux et il a des modules en standard faits pour ça (urllib, urllib2, HTMLParser, httplib) , donc je préconiserais ce choix (avis personnel et professionnel) --Message édité par tamiel le 29-06-2007 à 14:42:41-- ------------------------------------- If you don't know, ask manpage ! |
|
|
#6 Message posté le : 01-07-2007 à 00:55:56 |
Petit scarabée Forum : Inscrit Association : Arrivé(e) le : 26-10-2006 Nombre de messages : 57 |
Merci pour toutes vos reaction , enfait je sohaiterais ecrire un script qui recuperer toute les information sur mon abonnement telephonique le formulaire du site est le suivant : <form class="isd_paddings_sm" method="POST" action="https://www.sfr.fr/cas/login?service=https://www.sfr.fr/j_acegi_security_check" name="frm" ID="frm">
<input type="hidden" name="target" value="/" />
<input type="hidden" name="_eventId" value="submit" />
<input type="hidden" name="currentpage" value="http://www.sfr.fr/" />
<p class="login_help">
<label for="login">Mon identifiant :</label>
<a onmouseover="showHelp(this)" href="#" class="color_black">(?)<span>Saisissez votre N° d'appel à 10 chiffres ou votre login ADSL</span></a>
</p>
<input id="login" name="username" type="text" class="xs" style="margin-right:5px;" />
<p class="isd_Tpaddings"><label for="code">Mon code personnel :</label></p>
<input id="code" name="password" type="password" class="xs"/>
<a href="#" onclick="javascript:checkLoginForm();"><img src="/img//skin/visu_split_ok_btn.gif" class="button_ok" alt="" border="0" /></a>
<ul class="lst_simple no_Vsides_mrgn clickableText isd_Vpaddings_sm">
<li><a href="https://monprofil.sfr.fr/monprofilTDB/publique/AccueilReinitWeb?Precedent=http://www.sfr.fr/&Quitter=http://www.sfr.fr/&Suivant=http://www.sfr.fr">> Code personnel oublié</a> <a href="http://www.sfr.fr/aide-connexion.jsp">> Aide</a></li>
</ul>
<p class="checkboxLine no_Vsides_pdg">
<input type="checkbox" name="remember-me" value="on"/>
<label>Mémoriser mon compte sur cet ordinateur</label>
</p>
</form>j'ai essayer ceci pour tenter de me loggé : wget --save-cookies=$cookie -q --post-data="username=monlogin&password=monmotdepasse" https://www.sfr.fr/cas/login?service=https://www.sfr.fr/j_acegi_security_check mais sans succés , comment savoir quel parametre mettre dans l'option --post-data ? ------------------------------------- On est toujours le newbie de quelqu"un. |
|
|
#7 Message posté le : 01-07-2007 à 16:14:29 |
Jedi Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 4030 |
Salut tu n'utilises pas correctement l'option --post-data. Extrait du man :
A adapter bien sûr... De plus, il fautdrait reproduire tous les champs du formulaire et pas seulement celui du login et du mot de passe. --Message édité par jblecanard le 01-07-2007 à 16:14:45-- ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
| Page : [1] |
Forum » Serveur, Réseaux et Programmation » realisation d'un script pour recuperer des info sur un site web |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages