python 网站文件下载-让python自动下载网站文件

本文介绍了如何使用 Python 下载包含多个层级文件和链接的网站内容。通过递归实现自顶向下的文件下载,判断 URL 是否为文件,下载文件,获取页面所有链接,并排除返回上级页面的链接,以避免死循环。同时提出了处理已访问链接和程序中断后的恢复策略。
摘要由CSDN通过智能技术生成

最近维基 jie mi 彻底公布了网站的全部文件,我就在想如何使用 Python 将其下载到本地永久保存,于是就有了这篇文章。写爬虫会遇到很多坑,借鉴他人经验,考虑越全面,出错的概率就越小。

mIvQ7r.jpg

假如有这样的网站,里面有很多链接,有指向文件的,有指向新链接的,新链接点击进去后,页面上可能是文件,也可能是链接,类似一个文件夹,里面即有文件,又有目录。如何从这样的网站上下载所有的文件,并按网站的目录结构来保存这些文件呢?

关键词:Python 下载 正则表达式 递归。

按照自顶向下的程序设计原则,我们先整理出自己的思路,然后使用 Python 语言来翻译下即可。

思路:由于目录的深度不固定,也不可能穷举,且每一个目录的处理方式和子目录父目录的处理流程都是一样的,因此我们可以使用递归来处理所有文件。

递归代码必须要有退出条件,退出条件要放在前面,本例中的递归退出条件就是:如果是文件就下载,下载完递归函数即完成任务。

总体思路:

1、给定一个 url,判断是否是文件,如果是文件,下载即可,然后函数结束。

2、如果给定 url 不是文件,那么访问该 url,并获取它下面的所有链接。

3、遍历步骤 2 产生的链接,递归的执行步骤 1 和 2,直到程序运行结束。

以上思路,用代码来描述如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值