Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème python avec urllib(2)

    4 juillet 2010 à 13:22:11

    Bonjour,
    je tente de créer un petit bot assez simple et celui-ci à besoin d'ouvrir une page web. J'ai donc commencé le codage de celui-ci après avoir eux du mal à passer de mon code php qui surchargeait petit à petit firefox pour un code python plus léger.
    Bref... j'utilise donc le cours : http://www.voidspace.org.uk/python/art [...] shtml#headers pour les requêtes http et j'ai donc recopié bêtement leur code. Néanmoins, j'ai ce genre d'erreur :
    Traceback (most recent call last):
      File "./server.py", line 33, in <module>
        send_get ('http://www.google.fr')
      File "./server.py", line 13, in send_get
        response = urllib2.urlopen(req)
      File "/usr/lib/python2.6/urllib2.py", line 124, in urlopen
        return _opener.open(url, data, timeout)
      File "/usr/lib/python2.6/urllib2.py", line 395, in open
        response = meth(req, response)
      File "/usr/lib/python2.6/urllib2.py", line 508, in http_response
        'http', request, response, code, msg, hdrs)
      File "/usr/lib/python2.6/urllib2.py", line 433, in error
        return self._call_chain(*args)
      File "/usr/lib/python2.6/urllib2.py", line 367, in _call_chain
        result = func(*args)
      File "/usr/lib/python2.6/urllib2.py", line 516, in http_error_default
        raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
    urllib2.HTTPError: HTTP Error 405: Method Not Allowed


    Ma fonction est :
    def send_get (url, cookie = '') :
    	values = { }
    	headers = { 'Cookie' : cookie }
    
    	data = urllib.urlencode(values)
    	req = urllib2.Request(url, data, headers)
    	response = urllib2.urlopen(req)
    	return response.read()
    

    Et comme je disais, j'ai réellement recopier bêtement...
    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      4 juillet 2010 à 13:25:25

      Le but est d'ouvrir une page web ou de faire du parsing sur une page web?

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        4 juillet 2010 à 13:57:58

        Citation : jb1993


        Et comme je disais, j'ai réellement recopier bêtement...



        Tu devrai mieux étudier le sujet ;) !

        De plus ça nous serait utile de savoir à quel genre de page web tu veux accéder (protégé par mot de passe ou non).

        Sinon, le message d'erreur indique une erreur 405 essaie de chercher de ce coté :) !
        • Partager sur Facebook
        • Partager sur Twitter
          4 juillet 2010 à 17:30:03

          Le but est simplement d'ouvrir une page sans s'occuper du code dedans. Sinon... il semblerait que ce soit l'envoi de paramètre post qui pose problème... vu que j'en envois pas. je vais tenter de me renseigner mais je trouve aucune fonction pour accéder simplement ouvrir une page avec des cookies comme paramètre uniquement.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            4 juillet 2010 à 17:55:30

            Tu peux donc utiliser plus simplement le module webbrowser

            Exemple :

            import webbrowser
            webbrowser.open("http://www.google.fr")
            


            • Partager sur Facebook
            • Partager sur Twitter
              5 juillet 2010 à 14:20:21

              EDIT : >_< rien dit
              • Partager sur Facebook
              • Partager sur Twitter
              Zeste de Savoir, le site qui en a dans le citron !
              Anonyme
                5 juillet 2010 à 14:33:11

                Citation : jb1993

                Le but est simplement d'ouvrir une page sans s'occuper du code dedans



                ;)
                • Partager sur Facebook
                • Partager sur Twitter

                Problème python avec urllib(2)

                × 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