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