2017-12-21 2 views
0

Ich habe einen Web-Bot, der versucht, einen Cookie zu erhalten. Der Fluss geht: Ich gehe Captcha, und ein csrftoken (Cookie) Ich lösen Captcha und Lösung an den Server senden. Sie senden die Sitzungs-ID zurück.Python-Anfragen, die kein Cookie empfangen

Die Sitzungs-ID ist ein Antwort-Cookie; obwohl ich es anscheinend nicht in Python verstehe.

enter image description here

Die POST Anfrage an den Server wie folgt aussieht:

cookies={'csrftoken': 'h1239phtluwrane',} 
headers = {'foo': 'bar'} 
session=requests.Session() 
r=session.post(URL, headers=headers, data=data, cookies=cookies) 
try: 
     cookies['sessionid']=session.cookies['sessionid'] 
except KeyError: 
     print("Error getting correct cookie. %s" %session.cookies) 

Dann in session.cookies nur die csrftoken als Anforderung Cookie ist .... Aber keine Antwort Cookie gefunden werden.

Auf eine andere Anmerkung. Derselbe genaue Code wurde verwendet, aber plötzlich hörte er auf zu arbeiten, obwohl ich ihn nicht bearbeitet habe. Ich habe überprüft, dass sich die Servermethoden nicht geändert haben.

+0

Wie beurteilen Sie die CSRF-Token erhalten? Könnte es sein, dass es sich jedes Mal ändert und Sie müssen das berücksichtigen? Was ist der 'r.status_code' Wert? Vielen Dank. – alecxe

+0

'status_code' gibt' 200' zurück und das CSRF-Token ändert sich und ich habe eine Suchfunktion, um diese zu erhalten, und ich habe bestätigt, dass sie funktionieren. TBH Ich hatte das oben genannte Problem und was behoben wurde, war es "Sitzung" statt nur die Cookies in der 'POST' zu überprüfen. – Tsangares

+0

Okay, danke. Haben Sie versucht, 'session.get()' zuerst auf die 'URL' zu setzen, bevor die Post-Anfrage? – alecxe

Antwort

0

Um Ihre Antwort Cookies zu tun bekommen:

print(r.json()['cookies']) 
#{'tasty_cookie': 'yum'} 
+0

'r.json()' gibt 'ValueError zurück: Kein JSON-Objekt konnte decodiert werden'. – Tsangares

Verwandte Themen