linux命令之curl,wget

  curl由于可自定义各种请求参数所以在模拟web请求调试网页方面更擅长;wget由于支持ftp和Recursive所以在下载文件方面更擅长。类比的话curl是浏览器,而wget是迅雷9。

  在下载上,也各有所长,wget可以递归,支持断点;而curl支持URL中加入变量,因此可以批量下载。

  个人用途上,我经常用wget来下载文件,加 -c选项不怕断网;使用curl 来跟网站的API 交互,简便清晰。

1.下载文件

curl -O http://man.linuxde.net/text.iso                    #O大写,不用O只是打印内容不会下载wget http://www.linuxde.net/text.iso                       #不用参数,直接下载文件

2.下载文件并重命名

curl -o rename.iso http://man.linuxde.net/text.iso         #o小写wget -O rename.zip http://www.linuxde.net/text.iso         #O大写

3.断点续传

curl -O -C -URL http://man.linuxde.net/text.iso            #C大写wget -c http://www.linuxde.net/text.iso                    #c小写

4.限速下载

curl --limit-rate 50k -O http://man.linuxde.net/text.isowget --limit-rate=50k http://www.linuxde.net/text.iso

5.显示响应头部信息

curl -I http://man.linuxde.net/text.isowget --server-response http://www.linuxde.net/test.iso

6.wget利器--打包下载网站

wget --mirror -p --convert-links -P /var/www/html http://man.linuxde.net/

curl(文件传输工具)

  1. 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. 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.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/filenam

    区别

    它们的区别,我看到的有如下几点:
    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则没有这个功能。

参考博文:

https://jingyan.baidu.com/article/eb9f7b6d63f092869264e856.html

https://blog.csdn.net/xiaoliuliu2050/article/details/53410298

原文地址:https://www.cnblogs.com/pipiyan/p/10438963.html

时间: 2024-10-08 08:23:03

linux命令之curl,wget的相关文章

【每天一个linux命令】curl

curl:访问http请求 1.不带参数的 get 访问网址 curl https://www.baidu.com/ 2.带参数的 post 访问网址 # 原始http请求1 http://192.168.129.152:8090/queryRoadBookIdByRange.do?longitude=113.04817071797032&latitude=35.176670000049185&cityName=焦作市 # linux访问方式 curl -d "longitude

Linux命令学习-curl

作用 curl是利用URL语法的一款强大的网络工具,你可以使用它完成上传下载文件等操作. curl http://www.cnblogs.com 上诉的命令即可将页面内容打印到屏幕上. 常用参数 -o:将文件保存为指定名称的文件中 -O:将地址总默认的文件名保存到本地 #将lizi.zip下载到本地并保存问1.zip curl -o 1.zip http://www.cnblogs.com/attachs/lizi.zip #将lizi.zip下载到本地 curl -O http://www.c

linux命令之curl

1. curl的语法: curl 选项 URL 2. URL url可以写成以下多种形式,分别实现不同的功能: http://www.{baidu,sina}.com 可以同时对两个url进行处理: http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html 可以对多个路径多个文件进行处理: http://www.numericals.com/file[1-100:10].txt      http://www.letters.com/

Linux命令之乐--curl

获取状态吗

Linux 抓取网页方式(curl+wget)

Linux抓取网页,简单方法是直接通过 curl 或 wget 两种命令. curl 和 wget支持协议 curl  支持 http,https,ftp,ftps,scp,telnet等网络协议 wget支持 http,https,ftp网络协议 curl 和 wget抓取实例 抓取网页,主要有url 网址和proxy代理两种方式 1. url 网址方式抓取 (1)curl下载百度首页内容,保存在baidu_html文件中 curl  http://www.baidu.com/  -o  ba

分布式进阶 十 linux命令行下载文件以及常用工具 wget Prozilla MyGet Linuxdown Cu

linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 下面就为大家详细介绍一下这些工具. 1. Wget Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具.如果没有安装可在http://www.gnu.org/software/wget/wget.html 下载最新版本. 1.1 编译安

Linux系统下利用wget命令把整站下载做镜像网站

Linux系统下利用wget命令把整站下载做镜像网站 2011-05-28 18:13:01 | 1次阅读 | 评论:0 条 | itokit  在linux下完整的用wget命令整站采集网站做镜像 的命令是及无视网站根目录下的robots.txt限制.并且可以模拟一个正常浏览者的信息下载该网站. C/C++ Code复制内容到剪贴板 wget -m -e robots=off -U "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.

【转】每天一个linux命令(61):wget命令

原文网址:http://www.cnblogs.com/peida/archive/2013/03/18/2965369.html Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行.这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后

linux命令 wget

Linux系统中的wget是一个下载文件的工具,它用在命令行下.对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器.wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理.所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行.这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦. wget 可以跟踪HTML页面上