一个欲儿的博客

一个欲儿的博客

Python 下载文件 (requests)
2022-05-26

直接上代码吧

import requests


#其中  D:index.html  是下载存储的绝对路径
downurl = "http://www.anyuer.club"
r = requests.get(downurl,stream=True)
with open(r"D:index.html" , "wb") as f:
    for chunk in r.iter_content(chunk_size=512):
        f.write(chunk)
print("download over!")


但是问题来了如果部分下载链接是需要用到请求头才下载的呢?

import requests


url = "http://bt.000dyun.com/XUEHOST/webbak.html"
querystring = {"a":"show","m":"cp"}
payload = ""
headers = {
    'Host': "bt.000dyun.com",
    'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
    'Referer': "http://bt.000dyun.com/XUEHOST/webbak.html?a=show&m=cp",
    'Cookie': "PHPSESSID="+ str(phpsid[0]),
    'Accept-Encoding': "gzip, deflate",
    'cache-control': "no-cache",
    'Postman-Token': "d05ab330-d295-4d33-af86-89beaf8efcf7"
    }
response = requests.request("GET", url, data=payload, headers=headers, params=querystring)
#print(response.text)
name = input("Please input filename:")
downloadurl = re.findall('a href="(.*?)" target="_blank" style="color:green" >下载</a>',response.text)
#print(downloadurl)
downurl = "http://bt.000dyun.com/XUEHOST/webbak.html?a=show&m=cp" + downloadurl[0]
#print(downurl)
#开始下载文件即可
r = requests.get(downurl, data=payload, headers=headers, params=querystring ,stream=True)
with open(r"C:\Users\YuEr\Desktop\科技常用系列\博客\\" + name , "wb") as f:
    for chunk in r.iter_content(chunk_size=512):
        f.write(chunk)
print("download over!")


发表评论: