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、獲取下載路徑
如果請求后直接返回文件內(nèi)容,可直接進行第三步
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)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python中requests模塊的使用方法
- python中requests庫session對象的妙用詳解
- python采用requests庫模擬登錄和抓取數(shù)據(jù)的簡單示例
- Python使用requests發(fā)送POST請求實例代碼
- python中requests使用代理proxies方法介紹
- Python爬蟲庫requests獲取響應內(nèi)容、響應狀態(tài)碼、響應頭
- Python3使用requests包抓取并保存網(wǎng)頁源碼的方法
- 詳解Python requests 超時和重試的方法
- Python requests timeout的設置
- 解決Python requests 報錯方法集錦
- Python中Requests庫的實現(xiàn)示例
相關文章
python實現(xiàn)一個點繞另一個點旋轉(zhuǎn)后的坐標
今天小編就為大家分享一篇python實現(xiàn)一個點繞另一個點旋轉(zhuǎn)后的坐標,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Pandas中常用的七個時間戳處理函數(shù)使用總結(jié)
在零售、經(jīng)濟和金融等行業(yè),數(shù)據(jù)總是由于貨幣和銷售而不斷變化,生成的所有數(shù)據(jù)都高度依賴于時間。如果這些數(shù)據(jù)沒有時間戳或標記,實際上很難管理所有收集的數(shù)據(jù)。本文為大家準備了Pandas中常用的七個時間戳處理函數(shù),需要的可以參考一下2022-04-04
Pandas的Series結(jié)構(gòu)及常用操作實例
這篇文章主要介紹了Pandas的Series結(jié)構(gòu)及常用操作實例,Series序列,是一種一維的結(jié)構(gòu),類似于一維列表和ndarray中的一維數(shù)組,但是功能比他們要更為強大,Series由兩部分組成:索引index和數(shù)值values,需要的朋友可以參考下2023-07-07
Python 使用 prettytable 庫打印表格美化輸出功能
這篇文章主要介紹了Python 使用 prettytable 庫打印表格美化輸出功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12

