1. curl命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
1.静默不输出任何东西
--silent
curl URL --silent
这条命令是将下载文件输出到终端,所有下载的数据都被写入到stdout。
如果要写入文件的话:
curl http://man.linuxde.net/test.iso -o filename.iso --progress
######################################### 100.0%
选项-o
将下载数据写入到指定名称的文件中,并使用--progress
显示进度条
2.用户curl设置cookie
--cookie
curl http://man.linuxde.net --cookie "user=root;pass=123456"
使用--cookie "COKKIES"
选项来指定cookie,多个cookie使用分号分隔
如果想要将cookie存为一个文件的话
curl URL --cookie-jar cookie_file
3.打印响应的头部信息
-I
通过-I
或者-head
可以只打印出HTTP头部信息
curl -I http://man.linuxde.net
HTTP/1.1 301 Moved Permanently
Server: openresty
Date: Tue, 04 Aug 2020 06:24:58 GMT
Content-Type: text/html
Content-Length: 182
Connection: keep-alive
Location: https://man.linuxde.net/
4.设置用户代理字符串
--user-agent
有些网站访问会提示只能使用IE浏览器来访问,这是因为这些网站设置了检查用户代理,可以使用curl把用户代理设置为IE,这样就可以访问了。使用--user-agent
或者-A
选项
curl URL --user-agent "Mozilla/5.0"
curl URL -A "Mozilla/5.0"
其他的http头部信息也可以用curl来发送,设置-H
curl -H "Host:man.linuxde.net" -H "accept-language:zh-cn" URL
5.常用的发送数据
Linux中curl方式get获取数据
curl -G -d "name=value&name2=value2" http://www.baidu.com
post获取数据
curl -d "name=value&name2=value2" http://www.baidu.com #post数据
curl -d a=b&c=d&txt@/tmp/txt http://www.baidu.com #post文件
表单的形式上传文件
curl -F file=@/tmp/me.txt http://www.aiezu.com
相当于设置form表单的method="POST"和enctype='multipart/form-data'两个属性。