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的主要内容,如果未能解决你的问题,请参考以下文章