¶wget
wget是Linux常用的一个下载文件的命令
- 碰到
&
等特殊字符需要加上双引号 - 重命名保存,由于会以最后一个"/"作为名字
1 | wget -O [newname] [url] |
- 限速下载(默认bytes/s )
1 | wget --limit-rate=50k [url] |
- 后台下载
1 | wget -b [url] |
- 断点续传
1 | wget -c |
- 同时下载多个文件
1 | cat downloads.txt |
- 伪装代理名称下载
1 | wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" [url] |
- 测试下载链接是否有效
1 | wget --spider [url] |
- 重试次数
1 | wget --tries=40 [url] |
- 下载镜像(下载后转换成本地链结,保存文件目录到本地指定目录)
1 | wget --mirror -p --convert-links -P ./LOCAL |
- 过滤格式下载-R
1 | wget --reject=gif [url] |
- 限制总文件大小
1 | wget -Q5m -i fielist.txt |
- 下载指定格式(图片、视频、pdf)-A
1 | wget -r -A.pdf [url] |
- FTP
1 | wget --ftp-user=username --ftp-password=password [url] |
- 保存下载信息
1 | wget -o download.log [url] |
¶curl
Command Line URL view支持文件问上传下载
- 抓取页面到文件
1 | curl -o index.html http://njdxydjd.mh.libsou.com/ |
- 显示头信息
1 | curl -i http://njdxydjd.mh.libsou.com/ |
-I
只显示http response
-v
显示通信过程
--trace output.txt
跟踪整个连接过程
--trace-ascii output.txt
- 模拟登陆
curl - 断点续传C大写
1 | curl -C - -o file [url] |
如果url只是server名称那下载时需支持HTTP/1.1
- 分段下载
1 | curl -r 0-100 -o 07.part1 http://njdxydjd.mh.libsou.com/books/diskaiq/aiq24/07.pdf |
- 代理
1 | curl -x ip [url] |
- 下载进度
1 | curl -# [url] |
==-s
silent不显示信息==
1 | curl -w 'We downloaded %{size_download} bytes\n' www.download.com |
必须在30分钟完成,且每秒的速度不得低于3000字节
- user agent
1 | curl --user-agent "Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)" [URL] |
- cookie 从http response头信息的
Set-Cookie
字段中得到
1 | curl -c cookies http://example.com |
-c cookie-file
可以保存服务器返回的cookie为netscape格式
-b cookie-file
直接使用header作为cookie
-L -b
发现模式寻找cookie,可能并不存在
1 | curl -b cookies.txt -c cookies.txt www.example.com |
读写使用相同的cookie
- http
1 | curl --usre name:password [url] |
- 下载多个文件
1 | curl -O [ulr1] [url2] -o 2.pdf |
同一个host放在一行减少传输的连接时间
- 解决重复输入密码
1 | curl -n --netrc-optinal [options] [url] |
.netrc
类似于machine curl.haxx.se login iamdaniel password mysecret
- 当服务器有更新的文件则更新,或指定日期
1 | curl -z local.html 'url' |
反之,-local.html