IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Automatiser les tâches Web avec Python


Sujet :

Réseau/Web Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 44
    Par défaut Automatiser les tâches Web avec Python
    Bonjour,

    J'aimerais créer un script qui pour un petit jeu online qui fasse le travail à ma place pendant que je suis au bureau (gestion de mon perso, saisie des formaulaires en fonction des conditions...)

    Je ne connais rien au Python, mais j'en ai entendu du bien. Je sais qu'il existe une librairie Perl WWW::Mechanize qui permet de le faire.

    Est-ce qu'on peut le faire avec Python et où on peut trouver de l'aide ?

    Merci

  2. #2
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    urllib et urllib2 sont tes amis

  3. #3
    Membre confirmé Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Par défaut
    ce message tombe bien, c'est exactement ce que je veux faire.

    par contre, je n'y arrive pas vraiment...

    je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import urllib
    pageWeb = urllib.urlopen(webAddress)
    mon souci, c'est que lorsque je fais ca, j'obtiens la page ou je dois me logger,
    et je ne peux rien faire sans me logger.
    "webAddress" est de type ".php", j'imagine que je dois pouvoir lui passer des parametres de connexion (login, password).

    mais je ne sais pas du tout comment faire, je n'y connais pas grand chose au principe de connexion sur un site web ...

    quelqu'un pourrait-il m'eclairer ?



    P.S: pour clarifier ce que je veux faire :

    je voudrais faire un script python qui "dialogue" avec un site web.
    par "dialogue", j'entends pouvoir obtenir des informations (sous forme d'objet? ou de code html, ...),
    et egalement pouvoir repondre ( adresseSite.php?reponse=maReponse, ou bien intercepter un popup ?, ...)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Comme le dit anthyme, urlib2 est votre ami !
    http://docs.python.org/lib/module-urllib2.html

    Vous pouvez ouvrir une page avecSi la page attend des paramètres par GET, il faut les concaténer à l'url. Sur le site de votre jeu, vérifiez si des données de type [...]xxx.php?data1=val1&data2=val2[...]
    apparaissent dans la barre d'adresse. Si oui, votre script doit ajouter ces données à l'url pour communiquer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    url = 'www.monjeu.com/action.php'
    data1 = val1
    data2 = val2
    url += '?data1=' + data1 + '&data2=' + data2
    page = urlopen(url)
    Si de telles données n'apparaissent pas dans l'adresse, elles sont envoyées par POST, et ne doivent pas être ajoutées à l'adresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    url = 'www.monjeu.com/action.php'
    data1 = val1
    data2 = val2
    data = 'data1=' + data1 + '&data2=' + data2
    page = urlopen(url, data)
    Regardez aussi du côté de la classe 'Request'.

    Après avoir appelé une page, si tout va bien, vous devriez récupérer un objet de type pseudo-fichier. Il faudra l'analyser pour interpréter la réponse du site, récupérer la situation du jeu, etc.

    Je n'ai pas testé ce que j'avance, mais les grands principes sont là. A vous de jouer !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 93

  6. #6
    Membre confirmé Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Par défaut
    merci a toi, tes conseils m'ont ete precieux pour avancer.

    par contre, je n'arrive toujours pas a me faire identifier par le serveur.

    j'ai essaye l'exemple de l'article ci-dessus.
    (recuperer l'erreur pour avoir le "protocole" pour se faire identifier)

    en gros je veux acceder a une page a laquelle on ne peut acceder qu'une fois identifie par le serveur.
    or quand je tente d'acceder a la dite page, le serveur ne me renvoie pas d'erreur, mais me redirige simplement vers la page d'authentification.


    je pense qu'il y a un truc que je n'ai pas compris quelque part !!

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    C'est normal, je suppose qu'il faut récupérer un identifiant de session et le faire suivre à chaque page où tu veux aller. C'est-à-dire que l'identification se contente de te fournir un "jeton" que tu montres à chaque page pour prouver que tu es bien toi, et éviter les situations à la "chaperon rouge"

    Par contre, je ne vois pas comment récupérer cet identifiant... Je ne me suis jamais penché sur l'identification par programmation !

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 93
    Par défaut
    Cette page http://www.voidspace.org.uk/python/a...authentication explique comment s'identifier sur un site. Les premières lignes du sous-chapitre contiennent un lien vers un tutorial plus poussé. Je n'ai pas le temps de plonger dedans, mais si j'ai bien compris, les documents expliquent comment se connecter à n'importe quelle page d'un site en faisant suivre l'identification.

    Mais outre l'identification, tu vas devoir encore analyser le code des pages récupérées pour connaître la situation de ton jeu... Je te conseille vivement de te mettre à HTML et JavaScript, pour comprendre comment ça marche et pouvoir en tirer ces informations.

    Bonne chance !

  9. #9
    Membre confirmé Avatar de KINENVEU
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 184
    Par défaut
    j'ai essaye ce qui est dans l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    from urllib2 import Request, urlopen
    req = Request(someurl)
    try:
        handle = urlopen(req)
    except IOError, e:
        if hasattr(e, 'reason'):
            print 'Nous avons échoué à joindre le serveur.'
            print 'Raison: ', e.reason
        elif hasattr(e, 'code'):
            print 'Le serveurt n'a pu satisfaire la demande.'
            print 'Code d\' erreur : ', e.code
    else:
        # everything is fine
    le souci, comme je disais plus haut, c'est que urlopen ne me leve pas d'erreur,
    mais me redirige vers la page d'autentification...
    donc dans ce cas, je ne vois pas comment faire.

    par contre, la voie du jeton d'authentification peut etre une bonne piste aussi, mais je ne sais pas non plus comment faire.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2014, 12h02
  2. comment developper une page web avec python
    Par moezcool dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 27/06/2008, 13h45
  3. Les applications web et Python
    Par deltus7529 dans le forum Réseau/Web
    Réponses: 13
    Dernier message: 18/07/2007, 18h45
  4. [DW4] Redimensionner les pages web avec dreamweaver 4
    Par al777 dans le forum Dreamweaver
    Réponses: 17
    Dernier message: 20/11/2006, 13h23
  5. Réponses: 2
    Dernier message: 19/12/2005, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo