欢迎光临
我的个人博客网站

linux curl命令的重要用法:发送GET/POST请求,获取网页内容

curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合

传输工具,但按传统,习惯称url为下载工具。

#使用curl发送GET请求:curl protocol://ip:port/url?args curl https://proxy.mimvp.com/login?user=admin&passwd=12345678    #使用curl发送POST请求: (推荐) curl -d "key1=value1&key2=value2&key3=value3" protocol://ip:port/path #示例1:curl -d 'post_data=i_love_mimvp.com' https://proxy.mimvp.com/ip.php        // 测试 post ,发送什么数据就返回什么数据,如 'i_love_mimvp.com' #示例2:curl -d "user=admin&passwd=12345678" https://proxy.mimvp.com/login    // 测试 post ,模拟发送登录的用户名和密码  #获取页面内容,默认会发送 GET 请求来获取链接内容到标准输出。 [root@node5 ~]# curl http://www.baidu.com <!DOCTYPE html> <!--STATUS OK--><html>  ...... id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>   #显示 HTTP 头,而不显示文件内容,使用 -I 选项 [root@node5 ~]# curl -I http://www.baidu.com HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Connection: keep-alive Content-Length: 277 Content-Type: text/html Date: Thu, 22 Oct 2020 03:27:19 GMT Etag: "575e1f72-115" Last-Modified: Mon, 13 Jun 2016 02:50:26 GMT Pragma: no-cache Server: bfe/1.0.8.18  #同时显示 HTTP 头和文件内容,使用 -i 选项 [root@node5 ~]# curl -i http://www.baidu.com  #将返回结果保存到文件,使用-o参数  [root@node5 ~]# curl -o baidu.html http://www.baidu.com   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed 100  2381  100  2381    0     0  58084      0 --:--:-- --:--:-- --:--:-- 59525  #同时下载多个文件 [root@node5 ~]# curl -o baidu.txt http://www.baidu.com -o wanyi.txt http://www.163.com   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed 100  2381  100  2381    0     0  55109      0 --:--:-- --:--:-- --:--:-- 55372 100   236  100   236    0     0   3062      0 --:--:-- --:--:-- --:--:--  3062  #链接重定向,使用-L跟随链接重定向,逻辑为http://baidu.com -> http://www.baidu.com [root@node5 ~]# curl -L http://baidu.com <html> <meta http-equiv="refresh" content="0;url=http://www.baidu.com/"> </html>  #使用 -c 保存 Cookie,当我们使用 cURL 访问页面的时候,默认是不会保存 Cookie 的。有些情况下我们希望保存 Cookie 以便下次访问时使用。例如登陆了某个网站,我们希望再次访问该网站时保持登陆的状态,这时就可以现将登陆时的 Cookie 保存起来,下次访问时再读取。-c 后面跟上要保存的文件名。 [root@node5 ~]# curl -c "cookie.txt" http://www.baidu.com <!DOCTYPE html> <!--STATUS OK--><html>  ...... <title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div  href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>  [root@node5 ~]# cat cookie.txt  # Netscape HTTP Cookie File # http://curl.haxx.se/docs/http-cookies.html # This file was generated by libcurl! Edit at your own risk.  .baidu.com	TRUE	/	FALSE	1603424061	BDORZ	27315  #指定proxy服务器以及其端口,很多时候上网需要用到代理服务器(比如是使用代理服务器上网或者因为使用curl别人网站而被别人屏蔽IP地址的时候),幸运的是curl通过使用内置option:-x来支持设置代理 [root@node5 ~]# curl -x 192.168.100.100:1080 http://www.linux.com  #模仿浏览器,有些网站需要使用特定的浏览器去访问他们,有些还需要使用某些特定的版本。curl内置option:-A可以让我们指定浏览器去访问网站,如下服务器端就会认为是使用IE8.0去访问的 [root@node5 ~]# curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.baidu.com <!DOCTYPE html><!--STATUS OK--> <html> <head> 	<meta http-equiv="content-type" content="text/html;charset=utf-8"> 	 	<link rel="dns-prefetch" href="//t11.baidu.com"/> 	den name=ch value=""><input type=hidden name=tn {ns_c({'fm':'behs','tab':target.name,'un':encodeURIComponent(un)});}});}for(var i = 0; i < u.length; i++) + new Date(new Date().getTime() + 10*60*1000).toGMTString();</script> </body></html> 
赞(0) 打赏
未经允许不得转载:张拓的天空 » linux curl命令的重要用法:发送GET/POST请求,获取网页内容
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专业的IT技术经验分享 更专业 更方便

联系我们本站主机

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏