Script automatisation de login site web [Résolu/Fermé]

Signaler
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
-
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
-
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 !

21 réponses

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
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.
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
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.
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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 !
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
Salut,

Sous quelle plateforme tourne ton serveur ?

Sinon, l'automatisation via wget ou cURL doit pouvoir se faire sans problème...
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
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 !
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
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.
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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.
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 276
explicite tes problèmes, peut être que nous aurons la solution.
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
Comment se fait l'authentification sur le site web ? html ou php/cgi ?
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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/
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
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
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
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...
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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é.
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
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 ;-\
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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é.
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 078
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...

;-\
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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.
Messages postés
207
Date d'inscription
mardi 16 novembre 2010
Statut
Membre
Dernière intervention
10 décembre 2014
23
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