学会使用 curl 命令

6,257 阅读1分钟

介绍

  • curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。

模拟POST/GET请求

  • 假设目标url 为:127.0.0.1:8080/login
# 使用curl发送GET请求
$ curl http://127.0.0.1:8080/login?user=admin&passwd=12345678
# 使用curl发送POST请求
$ curl -d "user=admin&passwd=12345678" http://127.0.0.1:8080/login

HTTP头部信息也可以使用curl来发送,使用-H"头部信息" 传递多个头部信息

$ curl -H "Content-Type:application/json" http://127.0.0.1:8080

使用选项 -O 将下载的数据写入到文件 并使用 --progress 显示进度条

$ curl http://127.0.0.1:8080 -o file.txt --progress

设置 cookies

  • 使用 --cookie "COKKIES" 选项来指定 cookie,多个 cookie 使用分号分隔
$ curl http://127.0.0.1:8080 --cookie "user=root;pass=123456"

将 cookie 另存为一个文件,使用 --cookie-jar 选项

$ curl http://127.0.0.1:8080 --cookie-jar cookie_file

只打印响应头部信息

  • 通过-I或者--head可以只打印出HTTP头部信息
$  curl -I http://127.0.0.1:8080
# Accept-Ranges: bytes
# Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
# Connection: Keep-Alive
# Content-Length: 277
# Content-Type: text/html
# Date: Thu, 29 Nov 2018 03:13:16 GMT
# Etag: "575e1f7b-115"
# Last-Modified: Mon, 13 Jun 2016 02:50:35 GMT
# Pragma: no-cache
# Server: bfe/1.0.8.18

用 curl 设置用户代理字符串

  • 有些网站访问会提示只能使用 IE 浏览器来访问,这是因为这些网站设置了检查用户代理,可以使用 curl 把用户代理设置为IE,这样就可以访问了。使用 --user-agent 或者 -A 选项
$ curl http://www.baidu.com --user-agent "Mozilla/5.0"
$ curl http://www.baidu.com -A "Mozilla/5.0"

更多高级使用