Ich bin Moderator auf einem Discourse-Forum und möchte ein Python-Programm schreiben, das die Sitzungs-Cookies aus dem Browser klonen und eine einfache Benutzeraktion wie das Liken eines Beitrags ausführen kann. Ich habe die Sitzung erfolgreich geklont und konnte mit GET-Anfragen jede Seite abrufen, sogar private Kategorien (ich weiß also, dass die Sitzung erfolgreich geklont wurde). Als ich jedoch versuchte, einen Beitrag mit einer POST-Anfrage einfach zu liken, erhielt ich die Fehlermeldung „Bad CSRF“. Bei der Untersuchung stellte ich fest, dass kein CSRF-Token in der Anfrage generiert wurde. Ich möchte wissen, warum CSRF-Token im Browser generiert werden, aber nicht in dieser geklonten Sitzung. Gibt es eine Möglichkeit, ein CSRF-Token für die Anfrage zu erhalten? Mein einfacher Code ist unten aufgeführt.
import requests
import browsercookie
cj = browsercookie.firefox()
r = requests.post("https://somediscoursesite.com/post_actions", data={'id':'theid','post_action_type_id':'2','flag_topic':'false'}, cookies=cj)
print(r.status_code)
print(r.request.headers)