web自动化的利器 -- cURL

Posted WebCodingTech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web自动化的利器 -- cURL相关的知识,希望对你有一定的参考价值。

 cURL支持HTTP、HTTPS、FTP协议,也支持POST,cookie,断点续传,userAgent,extra header, 限速,文件大小限制,进度条等等。

默认情况下,linux的发行版往往不带cURL,需要自行安装。

cURL通常将下载文件输出到stdout,将进度信息输出到stderr,如果不想显示进度信息,可以使用--silent选项。

最简单的使用:

$ curl URL --silent

这样的命令会把文件输出到终端,如果想写入文件,可以使用-O选项。

$ curl URL --silent -O

如果不指明输出文件名,就会使用从URL中解析出来的文件名,例如

$ curl http://linux.web-coding.tech/index.html --silent -O

这样就会得到一个index.html文件。

如果无法从URL中解析出文件名,命令执行时会报错,所以你可以指定文件名:

$ curl http://linux.web-coding.tech/ --silent -o index.html

注意前者是-O,后者是-o。


curl支持从特定的文件偏移量处继续下载,

$ curl URL -C offset

offset就是以字节为单位的整数。

如果只想断点续传,可以这样

$ curl URL -C -URL

我们可以用curl存储cookie为一个文件

$ curl URL --cookie-jar cookie_file

如果要指定cookie

$ curl URL --cookie "key1=value1;key2=value2"

cookies是用key=value的形式给出,多个cookie以分号隔开。


有一些网页会检测访问的userAgent,这时候如果希望能按照指定的方式访问,就需要指定userAgent

$ curl URL --user-agent "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"

用-A和--user-agent是一样的。


同样的,如果需要设置访问的header

$ curl URL -H "Host:linux.web-coding.tech" -H "Accept-Language: zh-CN"

如果只想获取请求响应的头,可以使用-I或者-head

$ curl -I http://linux.web-coding.tech


如果带宽有限,可以使用--limit-rate来限制下载速度

$ curl URL --limit-rate 20k

速度单位支持k和m。


还可以指定下载的最大文件大小


$ curl URL --max-filesize 2500000

这里文件大小单位是byte。


curl命令也支持认证


$ curl -u username:password URL

如果不写password

$ curl -u username URL

那么敲回车之后,会提示你输入密码。


以上是关于web自动化的利器 -- cURL的主要内容,如果未能解决你的问题,请参考以下文章

安装CURL

Web调试利器fiddler介绍

前端利器,6 款开源 Web 性能优化辅助工具推荐

curl基于URL的文件传输工具

前端新春进阶利器:6款开源 Web 性能优化辅助工具的推荐

开发利器_Httpie.利用跨平台命令行下curl的替代品httpie调试接口?