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.
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.
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
'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
Okay, danke. Haben Sie versucht, 'session.get()' zuerst auf die 'URL' zu setzen, bevor die Post-Anfrage? – alecxe