Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Réseau/Web
Réseau/Web Forum d'entraide sur Python et le réseau/Web
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 14h38   #1
nireas
Invité de passage
 
Inscription : novembre 2012
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 9
Points : 1
Points : 1
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
nireas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 20h37   #2
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 739
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 739
Points : 4 581
Points : 4 581
Hmm...
Un petit tuto pour commencer et postez votre code si çà ne suffit pas.
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2012, 18h26   #3
Lujeni
Membre du Club
 
Avatar de Lujeni
 
Inscription : novembre 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 52
Points : 67
Points : 67
Proposition sur le sujet : Pourquoi ne pas essayer mechanize qui permet d'interagir avec un site web en *simulant* un navigateur ?
Lujeni est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/11/2012, 14h13   #4
nireas
Invité de passage
 
Inscription : novembre 2012
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 9
Points : 1
Points : 1
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?
nireas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2012, 18h39   #5
thetopic
Invité régulier
 
Inscription : mars 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 5
Points : 7
Points : 7
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 :
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.
thetopic est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2012, 10h41   #6
nireas
Invité de passage
 
Inscription : novembre 2012
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 9
Points : 1
Points : 1
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 :
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
nireas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 11h56   #7
nireas
Invité de passage
 
Inscription : novembre 2012
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 9
Points : 1
Points : 1
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..) ??
nireas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 16h56   #8
nireas
Invité de passage
 
Inscription : novembre 2012
Messages : 9
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 9
Points : 1
Points : 1
Bon béh, j'ai laissé tomber mon Python3. Je code en Python2.7 en utilisant donc mechanize et c'est réglé.

Merci
nireas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h15.


 
 
 
 
Partenaires

Hébergement Web