Linux下的curl工具

Curl

Curl是Linux下的http命令行工具。
  • curl [url]
    获取链接信息,获取的链接信息将在控制台中打印。
➜  ~ curl g.cn
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.cn/">here</A>.
</BODY></HTML>
  • curl [url] > [file]
  • curl -o [file] [url]
    将获取的信息存储到指定文件中
➜  ~ curl g.cn > biby.test
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   218  100   218    0     0    779      0 --:--:-- --:--:-- --:--:--   781

➜  ~ cat biby.test
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.cn/">here</A>.
</BODY></HTML>

➜  ~ curl -o biby_test2 g.cn
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   218  100   218    0     0   1241      0 --:--:-- --:--:-- --:--:--  1245

➜  ~ cat biby_test2
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.cn/">here</A>.
</BODY></HTML>
  • curl -x ip:port file url
    设置proxy,-x 指定http访问所使用的proxy服务器及其端口
curl -x 127.0.0.1:1087 -o biby.test3 http://www.google.com/
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13244    0 13244    0     0  84621      0 --:--:-- --:--:-- --:--:-- 84897

  • curl -o biby.test4 -D cookie.txt -X POST -d '{"name": "biby", "password": "123"}' --header "Content-Type: application/json" url
    -D 把http的response信息中的cookie信息存储到指定文件cookie.txt中。当页面信息被存储到biby.test4中的同时,cookie信息也被存储到cookie.txt中。
curl -o biby.test4 -D cookie.txt -X POST -d '{"name": "biby", "password": "123"}' http://sso.biby.com/login --header "Content-Type: application/json"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   978  100   860  100   118    316     43  0:00:02  0:00:02 --:--:--   316

  • curl -o biby.test5 -b cookie.txt url
    把登陆保存下的cookie信息追加到http request,这样即可访问需要验证cookie信息的链接
curl -o biby.test5 -b cookie.txt http://biby.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10466  100 10466    0     0   797k      0 --:--:-- --:--:-- --:--:--  851k
  • curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" url
    自定义请求浏览器信息
// 定义Windows 2000上的IE6
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" https://www.cnblogs.com/biby/
  • curl -e "url_link" url
    设定referer,告诉服务器,请求是点击链接"url_link"过来的
    [可用在有防盗链场景,访问限制,检查http访问的referer。比如需要先访问首页再访问下载页,访问下载页的referer地址就是第一次访问成功后的地址]
curl -e "xxx.com" http://www.com/test_download.html
  • curl -O url
    按照服务器上文件名称下载保存
// 自定义名字下载保存
curl -o test.jpg http://xxx.com/img.jpg
// 按服务器上文件名称下载保存
curl -O http://xxx.com/img.jpg
// 批量下载[有规律文件名],下载img1到img10所有图片
curl -O http://xxx.com/img[1-10].jpg
// 批量下载多个文件夹下的文件,~biby与~yan文件夹下的001到201文件都会被下载[该方法因为~biby与~yan文件夹下的文件都为001-201,先下载的文件会被慢下载的文件替换]
curl -O http://xxx.com/~{biby,yan}/img[001-201].jpg
// 批量多文件夹下文件自定义文件名称下载[~biby/001.jpg文件下载后的名称为001-biby.jpg。~yan/001.jpg文件下载后的名称为001-yan.jpg]
curl -o #2_#1.jpg http://xxx.com/~{biby,yan}/img[001-201].jpg
posted @ 2020-10-11 14:21  biby  阅读(125)  评论(0编辑  收藏  举报