curl与wget

Posted on Posted in command

curl

  • -c,–cookie-jar:将cookie写入到文件
  • -b,–cookie:从文件中读取cookie
  • -C,–continue-at:断点续传
  • -d,–data:http post方式传送数据
  • -D,–dump-header:把header信息写入到文件
  • -F,–from:模拟http表达提交数据
  • -s,–slient:减少输出信息
  • -o,–output:将信息输出到文件
  • -O,–remote-name:按照服务器上的文件名,存在本地
  • –l,–head:仅返回头部信息
  • -u,–user[user:pass]:设置http认证用户和密码
  • -T,–upload-file:上传文件
  • -e,–referer:指定引用地址
  • -x,–proxy:指定代理服务器地址和端口
  • -w,–write-out:输出指定格式内容
  • –retry:重试次数
  • –connect-timeout:指定尝试连接的最大时间/s

eg1:抓取页面到指定文件,如果有乱码可以使用iconv转码

$ curl -o baidu.html www.baidu.com
$ curl –s –o baidu.html www.baidu.com |iconv -f utf-8 #减少输出信息

eg2:模拟浏览器头(user-agent)

$ curl -A "Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.0)" www.baidu.com

eg3:处理重定向页面

$ curl –L http://192.168.1.100/301.<a href="http://www.ttlsa.com/php/" title="php"target="_blank">php</a> #默认curl是不处理重定向
$ curl –L http://192.168.1.100/301.php #默认curl是不处理重定向

eg4:模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆

$ curl -c ./cookies.txt -F NAME=user -F PWD=***URL #NAME和PWD是表单属性不同,每个网站基本都不同
$ curl -b ./cookies.txt –o URL
$ curl -c ./cookies.txt -F NAME=user -F PWD=***URL #NAME和PWD是表单属性不同,每个网站基本都不同
$ curl -b ./cookies.txt –o URL

eg5:获取HTTP响应头headers

$ curl -I http://www.baidu.com
$ curl -D ./header.txt http://www.baidu.com #将headers保存到文件中
$ curl -I http://www.baidu.com
$ curl -D ./header.txt http://www.baidu.com #将headers保存到文件中

eg6:访问HTTP认证页面

$ curl –u user:pass URL
$ curl –u user:pass URL

eg7:通过ftp上传和下载文件

$ curl -T filename ftp://user:pass@ip/docs #上传
$ curl -O ftp://user:pass@ip/filename #下载
$ curl -T filename ftp://user:pass@ip/docs #上传
$ curl -O ftp://user:pass@ip/filename #下载

wget

  1. 启动参数
  • -V,–version:显示版本号
  • -h,–help:查看帮助
  • -b,–background:启动后转入后台执行
  1. 日志记录和输入文件参数
  • -o,–output-file=file:把记录写到file文件中
  • -a,–append-output=file:把记录追加到file文件中
  • -i,–input-file=file:从file读取url来下载
  1. 下载参数
  • -bind-address=address:指定本地使用地址
  • -t,-tries=number:设置最大尝试连接次数
  • -c,-continue:接着下载没有下载完的文件
  • -O,-output-document=file:将下载内容写入到file文件中
  • -spider:不下载文件
  • -T,-timeout=sec:设置响应超时时间
  • -w,-wait=sec:两次尝试之间间隔时间
  • –limit-rate=rate:限制下载速率
  • -progress=type:设置进度条
  1. 目录参数
  • -P,-directory-prefix=prefix:将文件保存到指定目录
  1. HTTP参数
  • -http-user=user:设置http用户名
  • -http-passwd=pass:设置http密码
  • -U,–user-agent=agent:伪装代理
  • -no-http-keep-alive:关闭http活动链接,变成永久链接
  • -cookies=off:不使用cookies
  • -load-cookies=file:在开始会话前从file文件加载cookies
  • -save-cookies=file:在会话结束将cookies保存到file文件
  1. FTP参数
  • -passive-ftp:默认值,使用被动模式
  • -active-ftp:使用主动模式
  1. 递归下载排除参数
  • -A,–accept=list:分号分割被下载扩展名的列表
  • -R,–reject=list:分号分割不被下载扩展名的列表
  • -D,–domains=list:分号分割被下载域的列表
  • –exclude-domains=list:分号分割不被下载域的列表

eg1:下载单个文件到当前目录下,也可以-P指定下载目录

$ wgethttp://<a href="http://www.ttlsa.com/nginx/" title="nginx"target="_blank">nginx</a>.org/download/nginx-1.8.0.tar.gz
$ wgethttp://nginx.org/download/nginx-1.8.0.tar.gz

eg2:对于网络不稳定的用户可以使用-c和–tries参数,保证下载完成

$ wget –tries=20 -c http://nginx.org/download/nginx-1.8.0.tar.gz
$ wget –tries=20 -c http://nginx.org/download/nginx-1.8.0.tar.gz

eg3:下载大的文件时,我们可以放到后台去下载,这时会生成wget-log文件来保存下载进度

$ wget -b http://nginx.org/download/nginx-1.8.0.tar.gz
$ wget -b http://nginx.org/download/nginx-1.8.0.tar.gz

eg4:可以利用—spider参数判断网址是否有效

$ wget –spider http://nginx.org/download/nginx-1.8.0.tar.gz
$ wget –spider http://nginx.org/download/nginx-1.8.0.tar.gz

eg5:自动从多个链接下载文件

$ cat url_list.txt #先创建一个URL文件
http://nginx.org/download/nginx-1.8.0.tar.gz
http://nginx.org/download/nginx-1.6.3.tar.gz
$ wget -i url_list.txt
$ cat url_list.txt #先创建一个URL文件
http://nginx.org/download/nginx-1.8.0.tar.gz
http://nginx.org/download/nginx-1.6.3.tar.gz
$ wget -i url_list.txt

eg6:限制下载速度

$ wget –limit-rate=1m http://nginx.org/download/nginx-1.8.0.tar.gz
$ wget –limit-rate=1m http://nginx.org/download/nginx-1.8.0.tar.gz

eg7:登陆ftp下载文件

$ wget –ftp-user=user –ftp-password=pass ftp://ip/filenam
$ wget –ftp-user=user –ftp-password=pass ftp://ip/filenam
» 转载请注明来源:呢喃 » curl与wget