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 :

[http.client] Acceptation Cookie


Sujet :

Réseau/Web Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut [http.client] Acceptation Cookie
    Bonjour,

    je m'amuse à me créer un script en python 3.2.3 pour me connecter à mon compte sur un site. J'utilise la lib http.client, mais je ne peux me connecter car je dois accepter les cookies.
    Comment accepter les cookies en utilisant toujours la lib http.client? J'ai cru voir quelques méthodes avec la lib http.cookiejar, mais j'ai pas réussi et je n'arrive pas à faire le lien avec la lib http.client. Est-il possible d'accepter cela dans le header?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 276
    Points : 36 761
    Points
    36 761
    Par défaut
    Hmm...
    Un petit tuto pour commencer et postez votre code si çà ne suffit pas.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier Avatar de Lujeni
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 52
    Points : 82
    Points
    82
    Par défaut
    Proposition sur le sujet : Pourquoi ne pas essayer mechanize qui permet d'interagir avec un site web en *simulant* un navigateur ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je suis en python 3.2, mechanize n'est pas compatible avec la version 3. Pour le reste, je vais regarder. Je n'ai pas encore retravailler dessus. Mais nous sommes d'accord que la logique veut, que je établis une connexion sur le site, que je récupère tous les cookies et que je l'insère dans le header pour refaire une connexion. Est-ce bien cela?

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Points : 12
    Points
    12
    Par défaut
    Pour faire ça j'utilise la bibli requests sous python 3.2 http://docs.python-requests.org/en/latest/ que j'ai découverte il y a quelques jours et avec elle tu devrais arriver à tes fins.

    Si j'ai bien compris elle ne fait que simplifier l'utilisation d'urllib, donc ce qui est fait avec cette bibli peut aussi être fait sans elle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import requests
     
    headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.75 Safari/537.1'
                ,'Accept-Language' : 'fr-FR,fr;q=0.9,en;q=0.8'
                ,'Accept' : 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'
                ,'Connection' : 'Keep-Alive'
    }
     
    request = requests.session()  #active la sauvegarde de la session entre les requêtes
    response = request.get("http://www.google.fr", headers = headers)
    print(response.text)
    pour activer l'authentification je pense que ce n'est pas plus compliqué (je ne l''ai jamais fait) mais sur la première ligne de la doc je pense qu'il y a l'exemple qui convient.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je suis retourné sur ce programme enfin. Malheureusement je suis en Python3.3 maintenant
    Je n'arrive toujours pas avec ces cookies. Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import urllib.request, http.cookiejar, urllib.parse
     
    args = urllib.parse.urlencode({'email': email, 'password': password }).encode('utf-8')
    jar = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(jar))
     
    t = opener.open('http://www.site.com/login.php', args)
    d = t.read().decode('utf-8')
    h = t.getheaders()
    print(h)
    Dans h pourtant j'ai bien des champs Set-Cookie: ....., et pourtant sur le site il me demande d'activer les Cookie.


    print(len(jar)) me renvoi 3

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Lorsque je me connecte avec mon navigateur Firefox, je n'ai pas les mêmes cookies que ceux que je récupère avec mon script python.

    Il n'existe pas une librairie qui me permet d'accepter les cookies et de mettre mon propre header (exemple:le type de navigateur etc..) ??

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bon béh, j'ai laissé tomber mon Python3. Je code en Python2.7 en utilisant donc mechanize et c'est réglé.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. EJB3 et Can not connect http client invoker en client externe.
    Par JanSanKar dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 0
    Dernier message: 18/08/2009, 11h25
  2. Réponses: 1
    Dernier message: 21/08/2008, 12h49
  3. Requete HTTP Post et Cookies
    Par Ptitkarl dans le forum Langage
    Réponses: 17
    Dernier message: 24/04/2008, 15h31
  4. test authentification http client
    Par thefish dans le forum Apache
    Réponses: 2
    Dernier message: 26/06/2007, 16h56
  5. [servlet] http client postmethod
    Par ebaynaud dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/10/2006, 12h10

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