#!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : shenqiang \'\'\' 注意:定义类的时候,内部方法之间的互调 步骤: 1.按照流的方式进行下载 2.存储在某个文件中 \'\'\' import requests import shutil import time class DownLoadFile(): def readyDatas(self): \'\'\' 准备数据:固定参数 :param datas 接口参数 :param downLoadPath 下载文件地址 \'\'\' times = time.strftime("%Y-%m_%d %H_%M_%S", time.localtime(time.time())) self.datas = {"username":"","password":""} self.downLoadPath = \'/Users/apple/Documents/TestCode/tryApiTest/requestsPractice/Files{0}.xlsx\'.format(times) return self.datas,self.downLoadPath def getHearders(self): \'\'\' :return: Hearders 接口报文的头信息 \'\'\' self.Hearders = {\'Content-Type\':\'application/json;charset=UTF-8\',\'Referer\':\'http://lyfadmin.edu.laiyifen.com/plugins/platform-include/views/login.html\', \'Accept\': \'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\'} return self.Hearders def setSession(self): \'\'\' :return: SessionId 返回网址的Session信息 \'\'\' self.readyDatas() self.getHearders() self.sessionId = requests.Session() self.sessionId.post(url=\'http://lyfadmin.edu.laiyifen.com/ouser-web/mobileLogin/login.do\', json = self.datas, headers = self.Hearders) return self.sessionId def downFiles(self): \'\'\' 下载文件 \'\'\' self.setSession() loginStatus = self.sessionId.get(\'http://lyfadmin.edu.laiyifen.com/promotion-static/template/coupon.xlsx\', headers = self.Hearders, stream = True ) if loginStatus.status_code == 200: with open(self.downLoadPath,\'wb\') as files: \'\'\'Function1\'\'\' # for chunk in loginStatus.iter_content(chunk_size=1024): # files.write(chunk) \'\'\'function2\'\'\' loginStatus.raw.decode_content = True shutil.copyfileobj(loginStatus.raw, files) print(\'file download succeed\') else: print(\'file download failed\') if __name__ == \'__main__\': DownLoadFile = DownLoadFile() DownLoadFile.downFiles()