curl与wget
curl 和wget 区别 使用方法
可参考 curl vs Wget
1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令。
2.curl支持更多的协议。curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, POP3, IMAP, SMTP and RTSP at the time of this writing. Wget supports HTTP, HTTPS and FTP.
3.curl 默认支持HTTP1.1(也支持1.0),而wget仅仅支持HTTP1.0规范。引用wget的man page中的一段话吧,Please be aware that Wget needs to know the size of the POST data in advance. It's not quite clear how to work around this limitation inherent in HTTP/1.0. Although HTTP/1.1 introduces chunked transfer that doesn't require knowing the request length in advance, a client can't use chunked unless it knows it's talking to an HTTP/1.1 server. And it can't know that until it receives a response, which in turn requires the request to have been completed -- a chicken-and-egg problem.
4.curl在指定要下载的链接时能够支持URL的序列或集合,而wget则不能这样;
5.wget支持递归下载,而curl则没有这个功能。(这是wget的一个主要好处,wget也是有优势的,呵呵)
1、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,该选项相当于将下载的文件重命名)
-O,--remote-name:按照服务器上的文件名,存在本地(wget命令不用,直接跟下载文件地址即可)
--l,--head:仅返回头部信息
-u,--user[user:pass]:设置http认证用户和密码
-T,--upload-file:上传文件
-e,--referer:指定引用地址
-x,--proxy:指定代理服务器地址和端口
-w,--write-out:输出指定格式内容
--retry:重试次数
--connect-timeout:指定尝试连接的最大时间/s
-m : 数据传输的最大允许时间,单位秒(s)
使用示例:
例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 #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 #下载
2、wget(文件下载工具)
常用参数如下:
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:分号分割不被下载域的列表
使用示例:
例1:下载单个文件到当前目录下,也可以-P指定下载目录
# wget http://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.gz
http://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/filename
curl与wget的更多相关文章
- linux包-下载-curl与wget
[root@localhost ~]# rpm -qa|grep curllibcurl-7.19.7-37.el6_4.x86_64python-pycurl-7.19.0-8.el6.x86_64 ...
- Linux学习:curl 与 wget命令
curl和wget命令都是Linux下的工具,可以用来下载文件. 一.wget 例1: wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip 下载 ...
- Shell curl 和 wget 使用代理IP
Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget curl 和 wget 使用代理 curl 支持 http.https.socks4.socks5 wge ...
- curl和wget的区别和使用
curl和wget基础功能有诸多重叠,如下载等. 非要说区别的话,curl由于可自定义各种请求参数所以在模拟web请求方面更擅长:wget由于支持ftp和Recursive所以在下载文件方面更擅长.类 ...
- curl 与wget的区别
CURL与wget的区别 当想要直接通过linux 命令行下载文件,马上就能想到两个工具:wget 和 CURL.它们有很多一样的特征,可以很轻易的完成一些相同的任务,虽然它们有一些相似的特征,但它们 ...
- 开源http协议库curl和wget的区别和使用
curl和wget基础功能有诸多重叠,如下载等. 在高级用途上的curl由于可自定义各种请求参数所以长于模拟web请求,用于测试网页交互(浏览器):wget由于支持ftp和Recursive所以长于下 ...
- linux下载利器之curl和wget的区别
linux下载利器-------curl和wget的区别 curl和wget基础功能有诸多重叠,如下载等. 在高级用途上的curl由于可自定义各种请求参数所以长于模拟web请求,用于测试网页交互(浏览 ...
- Linux命令发送Http的get或post请求(curl和wget两种方法)
Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求.下面就来介绍一下Linux系统如何模拟Http ...
- curl 转 wget
curl 转 wget // sed -e 's@-H @--header=@g;s@^curl @wget @g;s@--compressed$@@g' $crf var curlStr = `cu ...
随机推荐
- Java反射交换两个整型变量的值
在一次面试中,做了这么一道题"交换两个整型变量的值",当时看到这个题目之后,会心一笑,这也太简单了--直接使用中间变量交换不就可以了吗?但是,面试官却说不需要返回值,在调用的地方, ...
- js对日期的判断
在初始页面获取倒当前时间并向前推N天后作为起始时间 function date(){ var myDate = new Date(); //获取当前时间 ...
- 天虎云商wap和微信话项目总结
1:架构:以后要采用项目分模块的方式写代码了,不能写一个公用的controller包,每个模块分包,分别建立service,dao,但是模块同级的有个功能的baseDao, BaseSe ...
- 洛谷P1462通往奥格瑞玛的道路题解
[题目]: https://www.luogu.org/problemnew/show/P1462 题意 题目是给定了一张双向边,有边权的图,然后让我们求出一个最小值,满足一条路径上的最大的费用小于这 ...
- RMQ--ST表
RMQ即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值. ST表既ST算法是一个非常有名的在线处 ...
- centos6.8下普通用户下quartus编程识别不到用户开发板
前言 centos6.8下su用户下可以识别到用户的板子,能正常下板,而普通用户下无法探测到用户板子. 需要配置一下usb-blaster,不然的话,虽然quartus软件能识别,但是无法探测到FPG ...
- 【AGC002F】Leftmost Ball DP 数学
题目大意 有\(n\)种颜色的球,每种\(m\)个.现在zjt把这\(nm\)个球排成一排,然后把每种颜色的最左边的球染成第\(n+1\)种颜色.求最终的颜色序列有多少种,对\(1000000007\ ...
- windows刷新本机DNS缓存
ipconfig /flushdns
- CF1117F. Crisp String
题意 给出表格,表示字母间"相邻"关系 保证给定字符串所有相邻字母"相邻" 删除某种字母时 要保证其两侧字母"相邻" 即删除后还是相邻字母& ...
- Shell 流程控制-if 语句
单分支if条件语句 if [ 条件判断式 ] ; then程序fi 例子:判断分区使用率 #!/bin/bash # Author: huangrui (Email:mycheryhr@gmail.c ...