zoukankan      html  css  js  c++  java
  • curl 和 wget 命令

    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

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

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

    使用 -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.1100%[=====================================================================================================================================================>] 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 文件。

  • 相关阅读:
    软件技术文档撰写要求
    UML需求分析步骤实例解析
    sql 操作重复数据集合
    cookie无法读取的问题
    软件开发中,这些文档你用到了吗?
    软件测试报告[样本]
    一个软件设计的全过程(基于UML)
    命令 状态 职责链 三种模式之间的异同
    PHP的MVC实现(3)
    怎么样整理有用的资料?
  • 原文地址:https://www.cnblogs.com/kika/p/10851624.html
Copyright © 2011-2022 走看看