Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python] Se connecter sur un site

avec urllib

Sujet résolu
    20 juin 2010 à 2:00:28

    Bonjour,

    Je souhaiterai pouvoir me connecter sur un site automatiquement avec un script.J'ai fait quelques recherches et voici ce que j'ai trouvé.
    Voici un essai avec le site du zéro

    #!/usr/bin/python
    
    import urllib2,urllib
    
    
    url = 'http://www.siteduzero.com/connexion.html'
    param = {'pseudo' : 'neo2500' ,
             'pass' : 'monMotDePasse',}
    
    data = urllib.urlencode(param)
    request = urllib2.Request(url,data)
    reponse = urllib2.urlopen(request)
    page = reponse.read(200000)
    print page
    


    Cela me donne:
    Traceback (most recent call last):
      File "test.py", line 13, in <module>
        reponse = urllib2.urlopen(request)
      File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
        return _opener.open(url, data, timeout)
      File "/usr/lib/python2.6/urllib2.py", line 397, in open
        response = meth(req, response)
      File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
        'http', request, response, code, msg, hdrs)
      File "/usr/lib/python2.6/urllib2.py", line 435, in error
        return self._call_chain(*args)
      File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
        result = func(*args)
      File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
        raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
    urllib2.HTTPError: HTTP Error 403: Forbidden


    Je vous demande donc comment se connecter à un site sachant que le langage n'a pas d'importance ( je n'avais jamais fait de python jusqu'à aujourd'hui).
    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2010 à 4:10:44

      Il y a d'autres champs dans le formulaire, dont un caché qui doit servir à piéger les bots.
      • Partager sur Facebook
      • Partager sur Twitter

      Blond, bouclé, toujours le sourire aux lèvres...

        20 juin 2010 à 8:16:13

        Avant ça, le SDZ bloc le user-agent par défaut d'urllib. Tu trouveras sur le net ce qu'il faut pour le modifier (ça prend deux lignes).
        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2010 à 15:00:43

          J'ai fait le prog en C avec le librairie curl. Trop galère en python.
          Merci.
          • Partager sur Facebook
          • Partager sur Twitter
            20 juin 2010 à 21:45:35

            wtf.

            Par curiosité, qu'est-ce que ça donne en C ?
            • Partager sur Facebook
            • Partager sur Twitter
              20 juin 2010 à 22:59:50

              Hum en fait la requête que je fait n'est pas sur le site du zéro;
              Et sur le site du zéro le code ne marche pas...
              En gros ca donne:

              /*****************************************************************************
               *                                  _   _ ____  _
               *  Project                     ___| | | |  _ \| |
               *                             / __| | | | |_) | |
               *                            | (__| |_| |  _ <| |___
               *                             \___|\___/|_| \_\_____|
               *
               */ 
               
              #include <stdio.h>
              #include <ctype.h>
              #include <math.h>
              #include <curl/curl.h>
              
              
              int main(void)
              {  CURL *curl;
                CURLcode res;
                char * data = "pseudo=neo2500&pass=monMotDePasse&challenge=f424305fd031a0c1dac07e04f0262287a2f8a5a8";
                FILE * f= fopen("test.html","w");
                curl = curl_easy_init();
                if(curl) {
                  curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
                  curl_easy_setopt(curl, CURLOPT_POST,1);
                  curl_easy_setopt(curl, CURLOPT_FILE, f);
                  curl_easy_setopt(curl, CURLOPT_COOKIEFILE,"");
                  curl_easy_setopt(curl, CURLOPT_URL, "http://www.siteduzero.com/connexion.html");
                  curl_easy_perform(curl);
                  /* always cleanup */ 
                  curl_easy_cleanup(curl);
                }
              
                fclose(f);
                return 0;
              }
              
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                26 juin 2010 à 14:02:36

                Bonjour,

                En Python, peut-être ce tuto pourrait-il t'aider (si tu ne l'as pas déjà lu) :

                http://www.voidspace.org.uk/python/art [...] rancais.shtml
                • Partager sur Facebook
                • Partager sur Twitter
                  5 avril 2016 à 18:47:33

                  Comment peut-on connaitre tous les éléments qui constituent un certain formulaire?

                  Dans le cas d'un authentification, est ce que celle-ci fonctionne si l'on oublie un paramètre de second rôle ( comme "se souvenir de moi")?

                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Python] Se connecter sur un site

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown