wget vs curl

wget

wget是Linux常用的一个下载文件的命令

  1. 碰到&等特殊字符需要加上双引号
  2. 重命名保存,由于会以最后一个"/"作为名字
1
wget -O [newname] [url]
  1. 限速下载(默认bytes/s )
1
wget --limit-rate=50k [url]
  1. 后台下载
1
2
3
wget -b [url]

tail -f wget-log
  1. 断点续传
1
wget -c
  1. 同时下载多个文件
1
2
cat downloads.txt    
wget -i downloads.txt
  1. 伪装代理名称下载
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. 测试下载链接是否有效
1
wget --spider [url]
  1. 重试次数
1
wget --tries=40 [url]
  1. 下载镜像(下载后转换成本地链结,保存文件目录到本地指定目录)
1
wget --mirror -p --convert-links -P ./LOCAL
  1. 过滤格式下载-R
1
wget --reject=gif [url]
  1. 限制总文件大小
1
wget -Q5m -i fielist.txt
  1. 下载指定格式(图片、视频、pdf)-A
1
wget -r -A.pdf [url]
  1. FTP
1
wget --ftp-user=username --ftp-password=password [url]
  1. 保存下载信息
1
wget -o download.log [url]

curl

Command Line URL view支持文件问上传下载

  1. 抓取页面到文件
1
2
curl -o index.html http://njdxydjd.mh.libsou.com/
curl -O http://www.cnblogs.com/peida/archive/2013/03/15/2960802.html
  1. 显示头信息
1
curl -i http://njdxydjd.mh.libsou.com/

-I 只显示http response
-v 显示通信过程
--trace output.txt 跟踪整个连接过程
--trace-ascii output.txt

  1. 模拟登陆
    curl
  2. 断点续传C大写
1
2
curl -C - -o file [url]
curl -C - -T file [url]

如果url只是server名称那下载时需支持HTTP/1.1

  1. 分段下载
1
2
curl -r 0-100 -o 07.part1 http://njdxydjd.mh.libsou.com/books/diskaiq/aiq24/07.pdf  
cat 07.part* 07.pdf
  1. 代理
1
curl -x ip [url]
  1. 下载进度
1
2
curl -# [url]
curl -s [url]

==-s silent不显示信息==

1
2
curl -w 'We downloaded %{size_download} bytes\n' www.download.com  
curl -m 1800 -Y 3000 -y 60 [url]

必须在30分钟完成,且每秒的速度不得低于3000字节

  1. user agent
1
curl --user-agent "Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)" [URL]
  1. cookie 从http response头信息的Set-Cookie字段中得到
1
2
3
4
curl -c cookies http://example.com
curl --dump-header headers [url]
curl -b headers [url]
curl -L -b empty.txt [url]

-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

  1. http
1
curl --usre name:password [url]
  1. 下载多个文件
1
2
curl -O [ulr1] [url2] -o 2.pdf
curl -T local [ftp1] -T local2 [ftp2]

同一个host放在一行减少传输的连接时间

  1. 解决重复输入密码
1
curl -n --netrc-optinal [options] [url]

.netrc 类似于machine curl.haxx.se login iamdaniel password mysecret

  1. 当服务器有更新的文件则更新,或指定日期
1
2
curl -z local.html 'url'
curl -z '2017-6-22' [url]

反之,-local.html

常用链接