最近想备份网站,但是php下载文件的大小是有大小限制的,而我也懒得装ftp再下载了,就想着暂时弄个二级域名站,然后用python(python3)的requests库直接下载网站根目录下的所有文件以及文件夹。(0-0就是这么任性)
1.安装requests库
pip install requests
2.下载文件夹下所有文件及文件夹
这里需要处理的地方主要是文件夹,这里我们判断出该链接是文件夹时,自动创建文件夹,并递归继续进行操作,否则判断该链接是文件,直接使用requests get方法下载,话不多说,看代码
####春江暮客 www.bobobk.com import requests import re import os import sys def help(script): text = 'python3 %s https://www.bobobk.com ./' % script print(text) def get_file(url,path):##文件下载函数 content = requests.get(url) print("write %s in %s" % (url,path)) filew = open(path+url.split("/")[-1],'wb') for chunk in content.iter_content(chunk_size=512 * 1024): if chunk: # filter out keep-alive new chunks filew.write(chunk) filew.close() def get_dir(url,path): #文件夹处理逻辑 content = requests.get(url).text if "<title>Index of" in content: sub_url = re.findall('href="(.*" rel="external nofollow" ',content) print(sub_url) for i in sub_url: if "/" in i: i = i.split("/")[0] print(i) if i!="." and i!="..": if not os.direxists(path+i): os.mkdir(path+i) get_dir(url+"/"+i,path+i+"/") print("url:"+url+"/"+i+"\nurl_path:"+path+i+"/") else: get_file(url+"/"+i,path) else: get_file(url,path) if __name__ == '__main__': if not sys.argv[1]: help(sys.argv[0]) exit(0) else: get_dir(sys.argv[1],"./")
至此,就在本地目录完全还原下载原网站的路径和文件了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python递归下载文件夹下所有文件”评论...
更新日志
2025年01月10日
2025年01月10日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]