I need to catch specific cookies from a python code and pass them on afterwards, the problem is, if I set the cookies manually they work for a while but after a few days they expire. I can get a recursive token with the cookie = requests.cookies.getdict () command, which I need to get back to each request but I can not get the other two that, although they work for a tmpo, if the program changes machine or expire 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"]+"¶mSenha="+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 can not in any way capture the request cookies ... I need to pass them as headers and if I do not the page returns error again. But the code works yes, except that I can not keep cookies manually. Thanks!