python?如何使用requests下載文件
更新時間:2022年02月12日 10:46:20 作者:阿宅gogo
這篇文章主要介紹了python?如何使用requests下載文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
使用requests下載文件
1、獲取token,或者session
如不需要可忽略
login_url = "http://xxxx/api/auth/login" login_data = {"username":"test3","password":"123456"} login_res = requests.post(url=login_url,data = login_data) token = login_res.json()["data"]["token"]
2、獲取下載路徑
如果請求后直接返回文件內容,可直接進行第三步
batch_url = "http://xxxx/api/models/batch" batch_data = {"ids":"[4]","version_number":"[309]"} headers = {"Authorization":"bearer %s" % token} batch_res = requests.get(url=batch_url,params=batch_data,headers=headers)
3、根據(jù)下載路徑拼接下載url
完成文件下載以及寫入
file_path = batch_res.json()['data']['file_path'] file_name = batch_res.json()['data']['file_name'] down_url = "http://xxxx/api/report/down" down_data = {"type":2, ? ? ? ? ? ? ?"file_path":file_path, ? ? ? ? ? ? ?"file_name":file_name, ? ? ? ? ? ? ?"token":token ? ? ? ? ? ? ?} down_res = requests.get(url=down_url,params=down_data) with open(file_name,"wb") as code: ? ? code.write(down_res.content)
備注:
第二步返回json數(shù)據(jù),包含路徑、文件名,實際是文件生成過程,第三步下載在服務端生成的文件,有時第三步無法在頁面F12查看到,需要使用抓包工具獲取
用requests.get下載文件
不知道大家有沒有遇到這樣的問題
就是url源不穩(wěn)定,時不時下載到空文件,我終于想到了一個解決的好辦法,分享給大家。
def downloadfile(url,filename=None): if(not filename): #如果參數(shù)沒有指定文件名 filename=os.path.basename(url) #取用url的尾巴為文件名 leng=1 while(leng==1): torrent=requests.get(url,headers=headers) leng=len(list(torrent.iter_content(1024))) #下載區(qū)塊數(shù) if(leng==1): #如果是1 就是空文件 重新下載 print(filename,'下載失敗,重新下載') sleep(1) else: print(path,'下載完成') with open(filename,'wb') as f: for chunk in torrent.iter_content(1024): #防止文件過大,以1024為單位一段段寫入 f.write(chunk)
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python中requests模塊的使用方法
- python中requests庫session對象的妙用詳解
- python采用requests庫模擬登錄和抓取數(shù)據(jù)的簡單示例
- Python使用requests發(fā)送POST請求實例代碼
- python中requests使用代理proxies方法介紹
- Python爬蟲庫requests獲取響應內容、響應狀態(tài)碼、響應頭
- Python3使用requests包抓取并保存網頁源碼的方法
- 詳解Python requests 超時和重試的方法
- Python requests timeout的設置
- 解決Python requests 報錯方法集錦
- Python中Requests庫的實現(xiàn)示例
相關文章
Python 使用 prettytable 庫打印表格美化輸出功能
這篇文章主要介紹了Python 使用 prettytable 庫打印表格美化輸出功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12