Sou moderador em um fórum Discourse e gostaria de escrever um programa em Python que clonasse os cookies de sessão do navegador e executasse uma ação simples de usuário, como curtir uma postagem. Consegui clonar a sessão e pude usar requisições GET para acessar qualquer página, até mesmo categorias privadas (então sei que a sessão foi clonada com sucesso), mas quando tentei simplesmente curtir uma postagem com uma requisição POST, recebi o erro “Bad CSRF”. Ao investigar, percebi que nenhum token CSRF estava sendo gerado na requisição. Quero saber por que os tokens CSRF são gerados no navegador, mas não nesta sessão clonada. Existe alguma maneira de obter um token CSRF para a requisição? Meu código simples está abaixo.
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)