1. curl

curl 支持 HTTP、HTTPS、FTP 等协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、User-Agent、限速、文件大小、进度条等特征。

1.1 选项

- -
-A--user-agent <string> 设置用户代理
-b--cookie <name=string/file> cookie 字符串或文件读取位置
-c--cookie-jar <file> 操作结束后把 cookie 写入文件
--basic 使用 HTTP 基本验证
-d--data <data> POST 方式传送数据
--data-ascii <data> 以 ASCII 的方式 POST 数据
--data-binary <data> 以二进制的方式 POST 数据
--tcp-nodelay 使用 TCP_NODELAY 选项
-e--referer 来源网址
-E--cert <cert[:passwd]> 客户端证书文件和密码 (SSL)
--cert-type <type> 证书文件类型 (DER/PEM/ENG) (SSL)
--key <key> 私钥文件名 (SSL)
--key-type <type> 私钥文件类型 (DER/PEM/ENG) (SSL)
--pass <pass> 私钥密码 (SSL)
--engine <eng> 加密引擎使用 (SSL)
--cacert <file> CA 证书 (SSL)
--capath <directory> CA 路径
--ciphers <list> SSL 密码
-F--form <name=content> 模拟 HTTP 表单提交数据
--form-string <name=string> 模拟 HTTP 表单提交数据
-H--header <line> 自定义头信息传递给服务器
-I--head 只显示请求头信息
-T--upload-file <file> 上传文件
-o--output 把输出写到文件中
-O--remote-name 把输出写到文件中,保留远程文件的文件名
-s--silent 静默模式。不输出任何东西

1.2 示例

只看返回的 HTTP Header

[root@VM_139_74_centos ~]# curl -I www.163.com
HTTP/1.1 200 OK
Expires: Sun, 06 May 2018 15:22:03 GMT
Date: Sun, 06 May 2018 15:20:43 GMT
Server: nginx
Content-Type: text/html; charset=GBK
Transfer-Encoding: chunked
Vary: Accept-Encoding,User-Agent,Accept
Cache-Control: max-age=80
Age: 44
X-Via: 1.1 PSfjqzdxgn15:0 (Cdn Cache Server V2.0), 1.1 chongdianxin121:4 (Cdn Cache Server V2.0)
Connection: keep-alive
X-Dscp-Value: 0

文件下载

curl 默认行为就是下载,浏览网页就是下载网页到本地,curl URL 会把这个 URL 对应的文件下载下来。但是 curl 会把下载的文件输出到 STDOUT 即终端窗口,可以通过 -o-O 选项写入文件。

[root@VM_139_74_centos ~]# curl http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg -o 1.jpg
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 208k 100 208k 0 0 447k 0 --:--:-- --:--:-- --:--:-- 448k

设置 cookie

使用 -b 读取 cookie 文件,或 --cookie <name=string/file> 选项来指定 cookie,多个 cookie 使用分号分隔:

curl http://www.baidu.com --cookie "user=root;pass=123456"

保存 cookie

使用 -c--cookie-jar <file> 选项:

[root@VM_139_74_centos ~]# curl www.baidu.com --cookie-jar cookie
<!DOCTYPE html>
...
[root@VM_139_74_centos ~]# cat cookie
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk. .baidu.com TRUE / FALSE 1525707455 BDORZ 27315

设置 HTTP Header

使用 -H--header <line> 传递多个头部信息,例如:

curl -H "Host:www.baidu.com" -H "accept-language:en" www.baidu.com

2. wget

wget 用于下载文件,支持断点续传。

2.1 选项

-a<日志文件>:在指定的日志文件中记录执行过程;

-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;

-b:进行后台的方式运行 wget;

-B<连接地址>:设置参考的连接地址的基地地址;

-c:继续执行上次终端的任务;

-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;

-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;

-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;

-i<文件>:从指定文件获取要下载的URL地址;

-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;

-q:不显示指令执行过程

-O:另存为指定名称的文件

-r:递归下载方式

2.2 示例

下载文件

[root@VM_139_74_centos ~]# wget http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg
--2018-05-06 23:42:14-- http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg
Resolving img02.tooopen.com (img02.tooopen.com)... 61.240.138.246, 221.194.130.173
Connecting to img02.tooopen.com (img02.tooopen.com)|61.240.138.246|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 213639 (209K) [image/jpeg]
Saving to: ‘tooopen_sy_161967094653.jpg.1’ 100%[=====================================================================================================================================================>] 213,639 --.-K/s in 0.09s 2018-05-06 23:42:14 (2.17 MB/s) - ‘tooopen_sy_161967094653.jpg.1’ saved [213639/213639]

下载文件并重命名

[root@VM_139_74_centos ~]# wget http://img02.tooopen.com/images/20160509/tooopen_sy_161967094653.jpg -O this_is_my_pic

下载指定格式文件

wget -r -A.pdf url

可以递归(-r 选项)下载一个网站的所有图片、视频、PDF 文件。

curl 和 wget 命令的更多相关文章

  1. Linux学习:curl 与 wget命令

    curl和wget命令都是Linux下的工具,可以用来下载文件. 一.wget 例1: wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip 下载 ...

  2. Linux命令发送Http的get或post请求(curl和wget两种方法)

    Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求.下面就来介绍一下Linux系统如何模拟Http ...

  3. HTTPie:替代 Curl 和 Wget 的现代 HTTP 命令行客户端

    HTTPie 工具是现代的 HTTP 命令行客户端,它能通过命令行界面与 Web 服务进行交互. -- Magesh Maruthamuthu 大多数时间我们会使用 curl 命令或是 wget 命令 ...

  4. Curl命令、Elinks命令、lynx命令、Wget命令、lftp命令

    一.Curl命令 语法 curl(选项)(参数) 选项 -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string> 设置用户代理发送给服务器 -a ...

  5. Linux 下模拟Http 的get or post请求(curl和wget两种方法)

    一.get请求: 1.使用curl命令: curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地curl -i & ...

  6. Shell curl 和 wget 使用代理IP

    Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget curl 和 wget 使用代理 curl 支持 http.https.socks4.socks5 wge ...

  7. 使用wget命令下载网络资源

    wget是GNU/Linux下的一个非交互式(non-interactive)网络下载工具,支持HTTP.HTTPS与FTP协议,并能够指定HTTP代理服务器.虽然wget命令与curl命令相比支持的 ...

  8. wget命令使用报错 certificate common name 'xxx' doesn't match requestde host name

    使用wget命令 wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 报如下错 error:certificate common name & ...

  9. curl与wget

    curl 和wget 区别 使用方法 可参考 curl vs Wget 1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令.2.curl支持更多的协议.curl supports ...

随机推荐

  1. Consul集群Server+Client模式

    Consul集群Server+Client模式 架构示意图 只使用Consul的Server模式有以下2个问题: 因为Consul Server数量受到控制所以压力承载(扩展性)是个问题. Serve ...

  2. 《剑指offer》面试题19 二叉树的镜像 Java版

    书中方法:这道题目可能拿到手没有思路,我们可以在纸上画出简单的二叉树来找到规律.最后我们发现,镜像的实质是对于二叉树的所有节点,交换其左右子节点.搞清楚获得镜像的方法,这道题实际上就变成了一道二叉树遍 ...

  3. [2019杭电多校第四场][hdu6616]Divide the Stones

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6616 题意是说n个数分别为1-n,将n个数分成k堆,能否满足每堆个数相等,数值之和相等.保证n%k=0 ...

  4. Django - Xadmin (五) POP

    Django - Xadmin (五) POP 功能及逻辑描述 pop 功能:在添加数据时,对于需要选择的多对多字段,在其 input 框边加上一个按钮,点击该按钮可以实现跳转到添加该字段数据的页面: ...

  5. C# log4net 日志写入到数据库

    原文:C# log4net 日志写入到数据库 效果图: 1:第一步创建SQL表结构   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  6. HTML拖放元素

    实现来回拖放图片 <!DOCTYPE HTML> <html> <title>来回拖放元素</title> <meta charset=" ...

  7. unity2017 光照与渲染(一)

    光照&渲染(基于unity2017.2.0) Custom Skybox 天空盒 最丰富的环境光 a. TextureShape 改成 Cube. b. 把图片直接丢给天空,就会自动生成材质. ...

  8. web开发中SESSION的本质

    有一点我们必须承认,大多数web应用程序都离不开session的使用.这篇文章将会结合php以及http协议来分析如何建立一个安全的会话管理机制.我们先简单的了解一些http的知识,从而理解该协议的无 ...

  9. ps:图像尺寸

    在课程#01中我们知道了显示器上的图像是由许多点构成的,这些点称为像素,意思就是“构成图像的元素”.但是要明白一点:像素作为图像的一种尺寸,只存在于电脑中,如同RGB色彩模式一样只存在于电脑中.像素是 ...

  10. [POJ 1390] Blocking

    问题描述 Some of you may have played a game called 'Blocks'. There are n blocks in a row, each box has a ...