Script automatisation de login site web

Résolu/Fermé
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 - Modifié par ghFrankfurt le 7/01/2011 à 10:48
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 10 janv. 2011 à 11:52
Bonjour,

Voilà le but recherché; Le pc distant doit envoyer l'url du fichier à télécharger sur le pc serveur.
Le pc serveur doit récupérer l'url, se loguer sur le site web et lancer automatiquement le téléchargement, en utilisant un navigateur pour les cookies.

Le pc distant envoie l'url via une page php.

Je voudrais votre avis pour savoir quel language je pourrais utiliser (quitte à en voir un que je ne connais pas, celà ne pourra de toute façon ne pas me faire de mal !) pour scripter tout ça et surtout, comment procéder ?
(L'envoi de l'url, ça c'est bon. Pour la récupérer je pensais faire, par exemple, un fichier temporaire stockant l'adresse pour ensuite la récupérer avec le script.)


Mes connaissances :

HTML/PHP : Bonnes
C++ : Je n'ai vu que la programmation en mode cmd et utilisation relativement basique
VB.NET : Moyenne
Javascript : Faible

[edit] bien évidemment, le démarrage script doit pouvoir se faire tout seul à l'arrivée d'une url !

A voir également:

21 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 janv. 2011 à 10:57
Le pc distant envoie l'url via une page php. comprend pas...
Le pc serveur doit récupérer l'url, se loguer sur le site web et lancer automatiquement le téléchargement, en utilisant un navigateur pour les cookies.
Je ne vois pas comment ça peut être faisable simplement. à mon avis, il vaut mieux utiliser des bibliothèques d'utilisation de HTML.
En PHP ça doit être faisable. Sinon, il y a perl avec les modules HTML.

Je ferai plus simple : le pc distant copie un fichier avec l'URL sur le serveur via ftp.
Le serveur exécute un script en continu et dès qu'il voit un fichier dans le répertoire l'ouvre, récupère l'URL, fait ce qu'il a à faire et supprime le fichier.
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
7 janv. 2011 à 11:19
Le pc distant envoie l'url via une page php. comprend pas...

En fait j'ai une page web avec une frame qui contient les différents site web où l'utilisateur distant ira chercher les liens à télécharger. Une fois qu'il a le lien, il a juste besoin de le coller dans un inputbox juste au dessus, sur la même page, et l'envoyer. Le lien arrive dans une variable que je peux ensuite insérer dans un fichier texte. Ceci afin de simplifier au maximum la vie de l'utilisateur distant.

Le pc serveur à besoin de se connecter au site web pour télécharger le fichier. Je sais qu'il est possible de faire des scripts qui permettent d'automatiser ça.

Dans le genre :
-il récupère l'url dans le fichier texte
-Il découpe l'url pour savoir quel est le site web et lance le navigateur directement sur le site à la page login (Ce sont des sites prédéfini)
-Il trouve les champs login et insére le login et mdp s'il n'est pas déjà connecté
-Charge l'url du fichier à télécharger et là la fenêtre "ouvrir / enregistrer" "ok/annuler" apparaît. Le script va automatiquement coché enregistrer et ok
-supprimer le fichier texte


Je sais que c'est possible de le faire, même si ce n'est pas évident
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 janv. 2011 à 11:34
ce que je trouve compliquer et que je ne serais pas faire simplement dans ton protocole, c'est l'interfaçage avec le navigateur. L'interet d'utiliser un langage de script type perl, c'est que rien ne s'ouvre sur le serveur, il n'y a pas de case à cocher. Bien sur, ça dépend comment est codé la session de connexion (ce qui n'est pas évident). Sans authentification, récupérer un fichier, c'est juste un simple GET en HTML. Répérer les champs login et mdp me semble impossible en absolu.
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
7 janv. 2011 à 11:48
Je crois que j'ai oublié de préciser; le fichier doit être télécharger sur le serveur et non sur le pc distant.

Les fichiers qui doivent être téléchargé sont relativement bien sécurisé. (Si j'envoie le lien à quelqu'un, il ne pourra pas le télécharger sans être logué sur le site web)

Je confirme que repérer les champs de login et mdp est faisable pour avoir travaillé quelques mois avec un informaticien non-voyant (Si si, ça existe !) Et là on rentre dans le sujet d'accessibilité et w3c qui est même obligatoire dans certains pays (angleterre par exemple). Et même sans ça un script un peu "casse gueule" avec une saisie de la touche "tab" au pire !
0

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

Posez votre question
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
7 janv. 2011 à 12:26
Salut,

Sous quelle plateforme tourne ton serveur ?

Sinon, l'automatisation via wget ou cURL doit pouvoir se faire sans problème...
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 janv. 2011 à 14:13
si la page de connexion est tourjours là même, il n'y a aucun problème, un script sans navigateur peut le faire. Mais faire un script qui repère le champ de login dans n'importe quelle page, là je ne vois pas comment faire !
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
7 janv. 2011 à 14:18
Les 2 programmes sus-cités gèrent les logins/mot_de_passe ainsi que les cookies. Normalement il suffit de t'authentifier une fois, de récupérer le cookie et d'appeler la page voulue à l'aide du cookie.
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
7 janv. 2011 à 14:25
Windows XP ... Ce n'est pas un serveur en soit, c'est un poste traitement qui devra être automatisé.
J'ai déjà essayé avec cURL, qui est puissant, certe, mais qui me pose également pas mal de problèmes.

Et je ne suis pas sur de pouvoir y arriver tout cours avec cURL par le simple fait qu'un programme type download manager, n'arrive pas à récupérer le fichier mais seulement une page html...

Je ne peux malheureusement pas vous donner un lien des fichiers en questions car les fichiers sont protégés par des droits, et donc, bien évidemment accessible à peu de personnes.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 janv. 2011 à 14:39
explicite tes problèmes, peut être que nous aurons la solution.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
7 janv. 2011 à 14:41
Comment se fait l'authentification sur le site web ? html ou php/cgi ?
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
7 janv. 2011 à 15:19
Bonne question ! Vu le code source j'aurais envie de dire html/js

L'un des sites web sur lesquels je dois récupérer des fichiers
http://www.ch.warnermedia.de/
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
Modifié par zipe31 le 7/01/2011 à 15:40
Pourrais-tu essayer ça :

curl -s --cookie-jar "cookie.txt" --data "POSTDATA=PHPSESSID=4233310ef99295a6083ff26ce7fbc3dd&MAX_FILE_SIZE=50000000&service=&action_params=&action=logon&username=XXXX@YYYY.ZZ&password=11111&save_mode=0" -L "http://www.ch.warnermedia.de"

Et me dire déjà si tu récupères un fichier "cookie.txt" dans le répertoire courant...

Édit : Tout est sur une seule ligne
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
Modifié par ghFrankfurt le 10/01/2011 à 09:46
Désolé de la réponse tardive, je récupère effectivement le fichier avec ce contenu :

# Netscape HTTP Cookie File
# https://curl.se/rfc/cookie_spec.html
# This file was generated by libcurl! Edit at your own risk.

www.ch.warnermedia.de FALSE / FALSE 0 PHPSESSID 022133b8fc5b67361fc3db4d549d99fb
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 janv. 2011 à 10:26
Bon maintenant faudrait tester la récupération d'un fichier :

curl --cookie "cookie.txt" -L "http://www.ch.warnermedia.de/chemin/fichier.xxx"


Sous réserve dans la mesure où je ne sais pas comment se présente la page où se trouve ton fichier...
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
Modifié par ghFrankfurt le 10/01/2011 à 11:05
L'url ce présente sous cette forme là :

http:// ch.warnermedia.de/?service=media%2Ftypes%2Fvideo_download&id=21828&ext=flv&test=dcba6ecceccefd0e827705afdcf8b296

Mais ça n'a pas marché.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 janv. 2011 à 11:15
J'avais prévenu ;-))

Et comme ça :

curl --cookie "cookie.txt"  --data "service=media%2Ftypes%2Fvideo_download&id=21828&ext=flv&test=dcba6ecceccefd0e827705afdcf8b296" -L "http://www.ch.warnermedia.de/"

Toujours sans garantie ;-\
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
10 janv. 2011 à 11:34
Malheureusement, ça ne marche toujours pas.
Egalement en rajoutant /? devant service et en enlevant le / après warnermedia.de
Y compris si je suis déjà connecté sur le site web (avec les deux solutions)
Ou en laissant seulement les cookies sans être connecté.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 janv. 2011 à 11:37
Ne pouvant faire de tests de mon côté je ne pourrai pas t'en dire plus, désolé ;-((

Il faudrait déjà être sûr que la procédure d'authentification soit bonne et que le cookie récupéré est bien complet...

;-\
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
10 janv. 2011 à 11:40
C'est pas grave, mais en tout cas, je te remercie beaucoup de ton aide !
Je pense également que celà vient plutôt du contenu du cookie récupéré mais grace à toi je pense que je finirais par trouver.
Si je trouve je tiens au courant.
0
ghFrankfurt Messages postés 207 Date d'inscription mardi 16 novembre 2010 Statut Membre Dernière intervention 10 décembre 2014 23
Modifié par ghFrankfurt le 10/01/2011 à 11:52
J'ai finalement réeussi !! Grâce à toi en grande partie !

Alors déjà j'ai remarqué qu'au login il me rappassait la main sur "http://ch.warnermedia.de" plutôt que ça : "http://www.ch.warnermedia.de" La différence semble moindre, mais maintenant j'ai tout le contenu dans mon cookies.txt

Ensuite sur le ligne pour récupérer le fichier. j'ai fait de cette manière :

shell_exec ('curl -L -O --cookie "cookie.txt" "http://ch.warnermedia.de/?service=media%2Ftypes%2Fvideo_download&id=21828&ext=flv&test=dcba6ecceccefd0e827705afdcf8b296"');

Et ça marche :) Encore merci
0