curl与wget高级用法

2024-10-12 07:59:35

wget是个专职的下载利器,简单,专一,极致;而curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。在下载上,也各有所长,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。个人用途上,我经常用wget来下载文件,加 -c选项不怕断网;使用curl 来跟网站的API 交互,简便清晰。

curl(文件传输工具)

1、常用参数如下:-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

2、使用示例:例1:抓取页面到指定文件,如果有乱码可以使用iconv转码# curl -o baidu.html www.baidu.com# curl –s –o baidu.html www.baidu.com |iconv -f utf-8 #减少输出信息例2:模拟浏览器头(user-agent)# curl -A “Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.0)” www.baidu.com例3:处理重定向页面# curl –L http://192.168.1.100/301.php #默认curl是不处理重定向例4:模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆# curl -c ./cookies.txt -F NAME=user -F PWD=***URL 本文所有的概念都可以从《Linux就该这么学》中找到详细的解释。#NAME和PWD是表单属性不同,每个网站基本都不同# curl -b ./cookies.txt –o URL例5:获取HTTP响应头headers# curl -I http://www.baidu.com# curl -D ./header.txt http://www.baidu.com #将headers保存到文件中例6:访问HTTP认证页面# curl –u user:pass URL例7:通过ftp上传和下载文件# curl -T filename ftp://user:pass@ip/docs #上传# curl -O ftp://user:pass@ip/filename #下载

wget(文件下载工具)

1、常用参数如下:2.1 启动参数-V,–version:显示版本号-h,–help:查看帮助-b,–background:启动后茌慊瑞谷转入后台执行2.2 日志记录和输入文件参数-o,–output-file=file:把记录写到file文件中-a,–append-output=file:把记录追加到file文件中-i,–input-file=file:从file读取url来下载2.3 下载参数-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:设置进度条2.4 目录参数-P,-directory-prefix=prefix:将文件保存到指定目录2.5 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文件2.6 FTP参数-passive-ftp:默认值,使用被动模式-active-ftp:使用主动模式2.7 递归下载排除参数-A,–accept=list:分号分割被下载扩展名的列表-R,–reject=list:分号分割不被下载扩展名的列表-D,–domains=list:分号分割被下载域的列表–exclude-domains=list:分号分割不被下载域的列表

2、使用示例:例1:下载单个文件到当前目录下,也可以-P指定下载目录# wgethttp://nginx.org/download/nginx-1.8.0.tar.gz例2:对于网络不稳定的用户可以使用-c和–tries参数,保证下载完成# wget –tries=20 -c http://nginx.org/download/nginx-1.8.0.tar.gz例3:下载大的文件时,我们可以放到后台去下载,这时会生成wget-log文件来保存下载进度# wget -b http://nginx.org/download/nginx-1.8.0.tar.gz例4:可以利用—spider参数判断网址是否有效# wget –spider http://nginx.org/download/nginx-1.8.0.tar.gz例5:自动从多个链接下载文件# cat url_list.txt #先创建一个URL文件http://nginx.org/download/nginx-1.8.0.tar.gzhttp://nginx.org/download/nginx-1.6.3.tar.gz# wget -i url_list.txt例6:限制下载速度# wget –limit-rate=1m http://nginx.org/download/nginx-1.8.0.tar.gz例7:登陆ftp下载文件# wget –ftp-user=user –ftp-password=pass ftp://ip/filenam

猜你喜欢