how to capture specific tokens in python requests

Asked

Viewed 310 times

1

I need to capture specific cookies from a python code and pass them on later, the problem is, if I set cookies manually they work for a while but after a few days they expire. I can pick up a recursive token with the cookie command = requests.cookies.getdict(), which I need to pick up again at each request but I can’t get the other two which, although they work for a tmpo, if the program changes machine or expires I have to set all cookies manually again.

below the code:

for cliente in clientes:
 session = requests.session() #cria a variável session



 ##Cria a pasta se não existir
 if not os.path.exists("C:\\Users\\...."):
     os.makedirs("C:\\Users\\....", 0755)

 data_busca = datetime.datetime.now().strftime("%d-%m-%Y-%H-%M-%S")
 data_busca_fim =  (datetime.datetime.now() - timedelta(days = 40)).strftime("%d/%m/%Y") 
 data_busca_inicio = (datetime.datetime.now() - timedelta(days = 40)).strftime("%d/%m/%Y")


 data_busca_fechamento = (datetime.datetime.now() - timedelta(days = 45)).strftime("%d/%m/%Y") 
 data_busca_fechamento = urllib.quote_plus(data_busca_fechamento)
 data_busca_inicio = urllib.quote_plus(data_busca_inicio)
 data_busca_fim = urllib.quote_plus(data_busca_fim)


 print str(data_busca_fim)



 ######Realiza o login

 url = "www.UMSITE.com/login" #diretorio da pagina de login
 payload = "paramCredenciado="+cliente["usuario"]+"&paramSenha="+cliente["senha"]+"&acao=logarCredenciado"
 headers = {
 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0", #por alguma razão eu preciso disso aqui para logar ou o cliente retorna erro
 'Accept-Language': "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3",
 'Content-Type': "application/x-www-form-urlencoded",
 'X-Requested-With': "XMLHttpRequest",
 'Cookie': "ASP.NET_SessionId=<um cookie que eu preciso>;  __RequestVerificationToken_L0NvbnN1bHRhV2Vi0=<outro-cookie_que_eu-preciso>", #eu preciso pegar estes dois cookies mas não consigo de jeito nenhum
 'Cache-Control': "no-cache",
 }



 login = session.post(url, data=payload, headers=headers)# Abre a sessão na pagina
 print "Sessão login Aberta !!!"
 cookie = session.cookies.get_dict() #aqui eu consigo pegar o cookie '.ASPXAUTH' que é recursivo e precisa ser capturado e repassado a cada nova requisição na página (esse eu consigo capturar)
 print login.text
#resposta esperada:    [{"Sucesso":"true","Mensagem":"OK","Acao":"redirecionar","Link":"linkDeLogin","Logado":"true","Erro":"false","MensagemErro":""}]
#se não der certo o prompt retorna uma html com a mensagem de erro inesperado


 #estou aqui tentando capturar os cookies de requisição e não os de resposta, porém eu não consigo captura-los
 print '================'
 print login.request.headers
 print '================'
 print '\n\n\n'
 cookie2 = login.headers.get('Set-Cookie')
 print login.headers
 print cookie2
 print login.cookies.get_dict()

 #entra na pagina após o login com uma requisição get
 url = "www.UMSITE.com/index/home"

 headers = {
 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0", #novamente preciso passar o user-agent ou retorna erro
 'Accept-Language': "pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3",
 'Cookie': "ASP.NET_SessionId=<novamente o cookie>; __RequestVerificationToken_L0NvbnN1bHRhV2Vi0=<novamente o segundo cookie>; .ASPXAUTH="+str(cookie['.ASPXAUTH']), #aqui eu consigo passar o cookie recursivo mas ainda não consigo capturar os outros dois cookies da página
 'Upgrade-Insecure-Requests': "1",
 'Cache-Control': "no-cache",
 }


 vendas = session.get(url,headers=headers)

 cookie = session.cookies.get_dict()

So... here with this code I nay I can in no way capture the request cookies... I need to pass them as headers and if not do the page returns error again. But the code does work, but I can’t manually keep the cookies. Thank you!

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.