在线下大文件下到一半自动断?
之前下载一些网站数据,遇到大文件,下到一半源服务器就中断,后面就找到了WGET,一个通过命令行下载文件和抓取网站的免费工具。WGET 提供了一组命令来下载文件,且能批量==下载失败自动重连且会顺着上次的下载继续下。==
关于WGET
背景
- GNU(GNU's Not Unix)是一个拥有大量自由软件的集合,也可作为独立的操作系统使用,如
linux
,GNU项目的目标是实现一个完全免费的软件操作系统。创始人 (Richard Stallman)之后还成立了自由软件基金会(FSF)并聘请软件开发人员编写GNU所需的软件。 - GNU Wget(Wget)是一个可以从网络服务器上获取内容的计算机程序,支持 HTTP, HTTPS, and FTP等的下载。下载代理工具。
- 它填补了 90 年代中期可用的不一致的网络下载软件的空白,即之前程序只能通过一种方式如FTP来下载文件。
- 我用它主要是因为它还能自动处理网络瞬时故障,即==下载失败会顺着上次的下载继续下==
特点
WGET 通过命令行下载文件和抓取网站
- 稳健:下载文件时会自动重连+下载
- 批量:可以递归下载,即批处理
- 自动:非交互即不需要图形界面及登录,自动完成大数据传输
- 便携:对第三方依赖小,只需要一个 C 编译器和一个类似于 BSD 的TCP/IP网络接口,Wget 是用可移植的 C 语言创建的,可以在任何 Unix 系统上使用。也可以在 Mac OS X、Microsoft Windows、AmigaOS 和其他流行平台上实施。
使用
==下载安装==
- 程序下载以下均可:https://eternallybored.org/misc/wget/
- 其他下载链接:官方2, aliyun镜像 wget
- 对于windows可下载最新版的64-bit exe并放在文件夹下
C:\Windows\System32
,这样就相当于配置了系统环境变量,就可以在CMD中直接运行
- ubuntu:
sudo apt-get install wget
安装完后在命令行输入wget -h
即可看到帮助文档,即命令用法
==使用命令示例,打开CMD==:更多命令可以查看文档,我个人最常用的就是-c -i -P 这几个参数
1 | 下载文件到当前目录 默认位置 |
此外:如果需要代理网络则需要==让CMD走代理流量==才行
Python wget
Python调用exe执行,没具体测试过,大致代码
- pip install wget
- import wget; wget.download(url, bar=bar_thermometer)
1 | # import the wget module |
其他参考
官方文档:https://www.gnu.org/software/wget/manual/wget.html
参考1: https://www.hostinger.com/tutorials/wget-command-examples/
参考2: https://builtvisible.com/download-your-website-with-wget/