题目描述
我计划写一个小工具,爬取我账号里面的数据,采用requests登陆后,虽然可以正常登陆,但是无法下载里面Excel数据,麻烦大货帮我分析一下,怎么解决。我知道可能是权限问题,下载的时候需要带cookies,虽然我又附加,但是显示无此页面。
相关代码
coding=utf-8
import requests
import itchat
import xlrd
import time
from requests.cookies import RequestsCookieJar
def user_login():
username = raw_input("请输入您的工号:")
password = raw_input("请输入您的密码:")
login_data = {
'action': "login",
'account': username,
'password': password,
}
base_url = "https://kdy.kuaidihelp.com/account/Ajax"
headers = {'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
'Accept - Encoding': 'gzip, deflate',
'Accept-Language': 'zh-Hans-CN, zh-Hans; q=0.5',
'Connection': 'Keep-Alive',
'Host': 'www.kuaidihelp.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'}
html = requests.post(base_url, data=login_data, headers= headers) #先登录取得cookies
login_cookies = requests.cookies.RequestsCookieJar() # 利用RequestsCookieJar获取
login_cookies.set('onlinewduser', 'QC8%2FgJRSBVCaubrSfGDJDQZx3IleevuBpIOLQ1VdUJC37askB715oECn44HpiNG6UQUOl0WnQXIjvWHmsyMjvCEnQjsUqLB1Ojxm8hAuOgGK3l4W%2F8eJgP%2F3ExoTbNVT0OmugzsCjjNM %2Bq4omPohvQIiEbcmz7daEiPhT%2FBmX%2FmZPwLknxke%2FAadewMYctrOzyvxon6srfL2PbnA9HOI1nTmtDmiTL8shl8uLH8bxCTl0McD6OsTd5JZKQp6xoT39KqOanEnoeSMznmfHVs04gr%2FpCWK78XGSmJXciVm07FcgOZGasKC1n9gy1r%2FcYvo')
from_time = time.strftime('%Y-%m-%d',time.localtime(time.time()))
print from_time
excel_url = "https://kdy.kuaidihelp.com/ess/downPrintRecord?s_date={}&e_date={}&type=backupRecord&d_l=1".format(from_time, from_time)
print excel_url
r = requests.get(excel_url, stream=False, headers=headers, cookies=login_cookies,)
print r.text
with open("data.txt", "wb") as code:
code.write(r.content)
time.sleep(500)
user_login()
你期待的结果是什么?实际看到的错误信息又是什么?
我想登陆我的工号,下载每天的发货记录,然后通过微信通知我检查一下,避免有漏扫描的。
问题出现的环境背景及自己尝试过哪些方法
一开始可以登陆正常,requests返回码显示200.但是后来提交下载的URL后,显示页面不存在。我查看过cookies后发现,登陆以后cookies会多一项,于是我更新cookies中新增的值,还是报一样的错。
你期待的结果是什么?实际看到的错误信息又是什么?
依照我的规划,我登陆可以直接下载到所有数据,然后将数据清洗一下,然后通过itchat发送到我的微信。