python如何递归下载文件夹下所有文件-创新互联

这篇文章主要介绍python如何递归下载文件夹下所有文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联公司-专业网站定制、快速模板网站建设、高性价比印台网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式印台网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖印台地区。费用合理售后完善,10年实体公司更值得信赖。

最近想备份网站,但是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 "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],"./")</pre><p>至此,就在本地目录完全还原下载原网站的路径和文件了。</p><p>以上是“python如何递归下载文件夹下所有文件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!</p>            <br>
            网站名称:python如何递归下载文件夹下所有文件-创新互联            <br>
            浏览路径:<a href="http://bzwzjz.com/article/pcghi.html">http://bzwzjz.com/article/pcghi.html</a>
        </div>
    </div>
    <div class="other">
        <h3>其他资讯</h3>
        <ul>
            <li>
                    <a href="/article/ighesg.html">java安装失败怎么解决</a>
                </li><li>
                    <a href="/article/igheoi.html">如何分析WEB-INF目录</a>
                </li><li>
                    <a href="/article/ighsjh.html">php_sapi=cli指的是什么意思</a>
                </li><li>
                    <a href="/article/ighece.html">java中什么是自定义注解</a>
                </li><li>
                    <a href="/article/igheds.html">MySQL的@和@@有什么区别</a>
                </li>        </ul>
    </div>
</div>
<div class="footer2">
    Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号 <br />友情链接:
    <a href="http://chengdu.cdxwcx.cn/" target="_blank">成都网站建设 </a><a href="http://www.cxhljz.cn/" target="_blank">成都网站建设 </a><a href="https://www.cdcxhl.com/" target="_blank">成都网站设计 </a><a href="http://chengdu.xwcx.net/mobile/" target="_blank">移动手机网站制作 </a><a href="http://m.cdcxhl.cn/dingzhi/" target="_blank">定制网站设计 </a><a href="https://www.cdxwcx.com/" target="_blank">成都网站建设 </a><a href="http://www.cxhlcq.com/mobile/" target="_blank">重庆手机网站建设 </a><a href="http://chengdu.cdcxhl.com/" target="_blank">成都网站制作 </a><a href="http://www.cdweb.net/" target="_blank">成都网站建设 </a><a href="http://m.cdxwcx.com/" target="_blank">成都网站建设 </a><a href="http://www.4006tel.net/" target="_blank">app网站建设 </a><a href="http://chengdu.cdcxhl.cn/" target="_blank">成都网站设计 </a><a href="http://chengdu.cdcxhl.cn/" target="_blank">成都网站建设 </a><a href="http://chengdu.cdcxhl.cn/jianshe/" target="_blank">品牌网站建设 </a><a href="http://www.36103.cn/" target="_blank">成都网站设计 </a><a href="https://www.cdcxhl.com/shop.html" target="_blank">商城网站建设 </a><a href="http://m.cdcxhl.com/muban.html" target="_blank">成都模版网站建设 </a><a href="http://m.cdcxhl.com/liucheng.html" target="_blank">成都网站建设流程 </a><a href="http://chengdu.cdxwcx.cn/" target="_blank">成都网站设计 </a><a href="http://www.cdweb.net/" target="_blank">成都网站设计 </a><a href="http://www.cqcxhl.com/" target="_blank">网站设计 </a><a href="https://www.cdcxhl.com/h5.html" target="_blank">成都h5网站建设 </a></div>

</body>
</html>
<script src="/Public/Home/js/wow.min.js"></script>
<script>
    if (!(/msie [6|7|8|9]/i.test(navigator.userAgent))) {
        new WOW().init();
    };
</script>
<div class="sidebar">
    <ul>
        <li><a href="http://wpa.qq.com/msgrd?v=3&uin=244261566&site=www.bzwzjz.com&menu=yes" target="_blank"><img src="/Public/Home/images/right_qq.png" /></a></li>
        <li><a href="http://wpa.qq.com/msgrd?v=3&uin=1683211881&site=www.bzwzjz.com&menu=yes" target="_blank"><img src="/Public/Home/images/qq.png" /></a></li>
        <li class="tel"><a href="tel:028-86922220"><img src="/Public/Home/images/right_tel.png" /></a></li>
        <div class="wx">
            <span class="weixin"><img src="/Public/Home/images/weixin.jpg"><br> 微信扫一扫在线咨询</span>
        </div>
        <li><a class="fx" href="#hero"><img src="/Public/Home/images/right_up.png" /></a></li>
    </ul>
</div>
<script type="text/javascript">
    $(function () {
        $('.sidebar .fx').click(function () {
            $('html,body').animate({
                scrollTop: '0px'
            }, 800);
        });
    });
</script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#fancybox-manual-b").click(function () {
            $.fancybox.open({
                href: 'map.html',
                type: 'iframe',
                padding: 5
            });
        })
    });
</script>
<script>
    $(".con img").each(function(){
        var src = $(this).attr("src");    //获取图片地址
        var str=new RegExp("http");
        var result=str.test(src);
        if(result==false){
            var url = "https://www.cdcxhl.com"+src;    //绝对路径
            $(this).attr("src",url);
        }
    });
    window.onload=function(){
        document.oncontextmenu=function(){
            return false;
        }
    }
</script>