Bonjour,
J'ai suivis les tuto de voidspace pour m'identifier sur un site web avec urllib, urllib2 et cookielib. L'identification se fait grace a deux input, un login et un password, j'envoie donc une requete POST avec ces deux variables et je recupere le cookie de session. Jusque là tout va bien, sauf que lorsque je me connecte sur une deuxieme page (interne au site web) je ressoi un message me disant que je dois etre identifié. Je precise que l'identification sur la premiere page fonctionne car j'ai regardé ce que me renvoyait le serveur et j'etais bien connecté.
Je pense que le problème est que le cookie n'est pas conservé.
Voici mon code source:
Je precise que le code est destiné a une epreuve de programmation sur morphee-challenge.com.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 import urllib import urllib2, cookielib list=[1, 21, 22, 23, 52] nb=0 i = 0 result= "" login = 'syltrox' password = '12345' cookiejar = cookielib.CookieJar() urlOpener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar)) values = {'login_id':login, 'password_id':password, 'identification':1} data = urllib.urlencode(values) request = urllib2.Request("http://www.morphee-challenge.fr/", data) url = urlOpener.open(request) page = url.read(500000) print "Identification reussi" while i != 5: the_url = 'http://morphee-challenge.fr/challenges/programmation/spider/%s.php'%list[nb] req = urllib2.Request(the_url) handle = urllib2.urlopen(req) print handle.read() if "perdu" in handle.read(): result = result + str(list[nb]) print "<!>", result i = i + 1 nb = nb + 1
Ma question est donc: Comment faire pour garder le cookie en memoire sur toute les pages visitées ( si l'erreur vient effectivement de ça ).
Merci d'avance.
Partager