Python envoie données dans page web

Résolu
Bonjour,
J'ai un problème et déjà fait une recherche dans les sujets mais je n'ai pas trouvé ma réponse
Je fais donc appel a votre aide

Je commence depuis peu a programmer en python

Je voudrais que mon programme écrive des données dans des champs de textes par exemple login et mot de passe d'une page internet et qu'il se connecte.

Je ne vois pas du tout comment faire.
Configuration: Windows Vista
Firefox 3.0.4

17 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Par exemple, le champ texte entry peut réagir quand on presse ENTREE dedans:
    self.entry.bind("<Return>", self.OnPressEnter)

    C'est la méthode OnPressEnter qui sera exécutée.
    1. Merci beaucoup pour le lien !
      C'est parfaitement ce que je recherchais
      1. Je n'ai pas tout bien compris
        par exemple si j'ai un champs de texte username

        self.username.bind("mon nom", self.OnPressEnter)
        ???

        J'ai essayé le lien et ça ne marche pas il me renvoi le message suivant

        traceback (most recent call last):
        File "C:\Python26\test.py", line 20, in <module>
        raise ValueError, "Login failed with login=%s, password=%s" % (login,password)
        ValueError: Login failed with login=clt1593, password=****
        1. Modérateur
          Non la commande bind sert à attacher une méthode à un évènement sur le widget.
          "mon nom" n'est pas un évèment connu de Tkinter.

          élément.bind("évènement",méthode)

          élément est l'élément de l'interface graphique sur lequel tu veux attacher un évènement.
          évènement est le type d'évènement que tu veux attacher.
          méthode est la méthode que tu veux qui soit appellée si cet évènement se produit.
          1. Modérateur
            par exemple si j'ai un champs de texte username
            self.username.bind("mon nom", self.OnPressEnter)


            ...bind() ce sont des méthodes tkinter, pour construire des interface graphiques.
            Je pensais que tu en faisais.

            Si je comprend bien, c'est du web uniquement que tu fais.

            traceback (most recent call last):
            File "C:\Python26\test.py", line 20, in <module>
            raise ValueError, "Login failed with login=%s, password=%s" % (login,password)
            ValueError: Login failed with login=clt1593, password=****


            Je ne peux pas t'aider, je n'ai pas le code source.
            1. Non , je programme en python mais pas pour le web

              Comme je suis un débutant en la matière mon programme s'ouvre dans une fenêtre comme une fenêtres d'invite de commande.

              Mes programmes ressemblent donc a une suite de lignes blanches dans un fond noir !!! Je n'utilise pas d'interfaces graphiques pour le moment j'ai pensé que ce serai préférable pour un débutant

              Il n'y donc pas une manière simple pour que mon programme tout simplement se connecte a un site avec un login et mot de passe
              et qu'il renvoi une réponse par un changement d'adresse par exemple qui me dise que j'ai bien été connecté
              1. Modérateur
                Se connecter sur un site web = envoyer une requête HTTP avec login et mot de passe et récupérer un cookie.
                Je te conseille de suivre l'exemple que j'ai donné.
                1. Est ce que le fait que le site soit https et non pas http change quelque chose ?

                  J'ai essayer avec un autre site en http il semble que mon code source fonctionne

                  cependant
                  Quand je me connecte normalement j'ai des cookies qui se créent

                  et quand je passe par le mon programme il me vérifie que le cookie a bien été créé

                  mais quand je retourne dans firefox les cookies n'y sont pas ???
                  1. Modérateur
                    C'est ton programme Python qui récupère les cookies, pas Firefox.
                    1. A ok je comprends mieux maintenant
                      mais comment puis-je afficher la page qu'ouvre l'ouverture d'une session ?
                      avec ça peut être ?
                      url = urlOpener.open('mon url ouverte lors de l'ouverture d'une session')
                      page = url.read(200000)
                      1. Modérateur
                        Le problème est d'insérer des cookies dans Firefox. Il n'y a aucune librairie Python prévue pour ça.
                        1. Et le fait que ce soit un https ça ne change rien ?

                          sinon il n'y a pas un moyen d'afficher ma page ou de faire un espece ne navigateur

                          je pense que cette solution n'est pas de mon niveau
                          1. Modérateur
                            Si j'ai bien compris, tu veux que le programme Python se logue automatiquement sur un site web, et que la suite de la navigation se fasse sous Firefox ?

                            Dans ce cas, il faudrait effectivement modifier les cookies de Firefox en Python, ce qui ne me semble pas évident au premier abord.
                            1. Oui c'est exactement ça ... mais je conclue qu'il faut attendre que je métrise un peu mieux le domaine.
                              C'est toujours bien d'avoir un peu d'imagination

                              Merci quand même pour toute l'aide que tu m'a apporté
                              1. Modérateur
                                De rien.

                                Ton idée ne manque pas d'intérêt, mais s'il s'agit être intégré à Firefox, il faudrait peut-être regarder du côté écriture de plugins pour Firefox (ce n'est malheureusement pas du Python, mais du javascript assaisonné de diverses normes (XUL, etc.))