`
releasa
  • 浏览: 40564 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux中的curl命令(转载)

 
阅读更多
转载: http://hi.baidu.com/yuanhotel/blog/item/032190ec35fa6a3b269791d1.html

Curl是Linux下一个很强大的http命令行工具,其功能十分强大。

1) 二话不说,先从这里开始吧!

$ curl http://www.linuxidc.com

回车之后,www.linuxidc.com 的html就稀里哗啦地显示在屏幕上了    ~

2) 嗯,要想把读过来页面存下来,是不是要这样呢?

$ curl http://www.linuxidc.com > page.html

当然可以,但不用这么麻烦的!

用curl的内置option就好,存下http的结果,用这个option: -o

$ curl -o page.html http://www.linuxidc.com

这样,你就可以看到屏幕上出现一个下载页面进度指示。等进展到100%,自然就 OK咯

3) 什么什么?!访问不到?肯定是你的proxy没有设定了。

使用curl的时候,用这个option可以指定http访问所使用的proxy服务器及其端口: -x

$ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com

4) 访问有些网站的时候比较讨厌,他使用cookie来记录session信息。

像IE/NN这样的浏览器,当然可以轻易处理cookie信息,但我们的curl呢?.....

我们来学习这个option: -D <— 这个是把http的response里面的cookie信息存到一个特别的文件中去

$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

这样,当页面被存到page.html的同时,cookie信息也被存到了cookie0001.txt里面了

5)那么,下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道,很多网站都是靠监视你的cookie信息,来判断你是不是不按规矩访问他们的网站的。

这次我们使用这个option来把上次的cookie信息追加到http request里面去: -b

$ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com

这样,我们就可以几乎模拟所有的IE操作,去访问网页了!

6)稍微等等    ~我好像忘记什么了    ~

对了!是浏览器信息

有些讨厌的网站总要我们使用某些特定的浏览器去访问他们,有时候更过分的是,还要使用某些特定的版本     NND,哪里有时间为了它去找这些怪异的浏览器呢!?

好在curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A

$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

这样,服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的 IE6.0,嘿嘿嘿,其实也许你用的是苹果机呢!

而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"则可以告诉对方你是一台 PC上跑着的Linux,用的是Netscape 4.73,呵呵呵

7)另外一个服务器端常用的限制方法,就是检查http访问的referer。比如你先访问首页,再访问里面所指定的下载页,这第二次访问的 referer地址就是第一次访问成功后的页面地址。这样,服务器端只要发现对下载页面某次访问的referer地址不是首页的地址,就可以断定那是个盗 连了    ~

讨厌讨厌 ~我就是要盗连    ~!!

幸好curl给我们提供了设定referer的option: -e

$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com

这样,就可以骗对方的服务器,你是从mail.linuxidc.com点击某个链接过来的了,呵呵呵

8)写着写着发现漏掉什么重要的东西了!——- 利用curl 下载文件

刚才讲过了,下载页面到一个文件里,可以使用 -o ,下载文件也是一样。比如,

$ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

这里教大家一个新的option: -O 大写的O,这么用:

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

这样,就可以按照服务器上的文件名,自动存在本地了!

再来一个更好用的。

如果screen1.JPG以外还有screen2.JPG、screen3.JPG、....、screen10.JPG需要下载,难不成还要让我们写一个script来完成这些操作?

不干!

在curl里面,这么写就可以了:

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG

呵呵呵,厉害吧?! ~

9)再来,我们继续讲解下载!

$ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

这样产生的下载,就是

~zzh/001.JPG

~zzh/002.JPG

...

~zzh/201.JPG

~nick/001.JPG

~nick/002.JPG

...

~nick/201.JPG

够方便的了吧?哈哈哈

咦?高兴得太早了。

由于zzh/nick下的文件名都是001,002...,201,下载下来的文件重名,后面的把前面的文件都给覆盖掉了 ~

没关系,我们还有更狠的!

$ curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

—这是.....自定义文件名的下载? —对头,呵呵!

这样,自定义出来下载下来的文件名,就变成了这样:原来: ~zzh/001.JPG —-> 下载后: 001-zzh.JPG 原来: ~nick/001.JPG —-> 下载后: 001-nick.JPG

这样一来,就不怕文件重名啦,呵呵
分享到:
评论
1 楼 congdepeng 2010-04-21  
不错 不错 学习了

相关推荐

    CURL在win和linux下详细教程

    - 在大多数 Linux 发行版中,可以通过包管理器(如 apt-get、yum 或 dnf)安装 CURL,例如 `sudo apt-get install curl` 或 `sudo yum install curl`。 10. **Windows 安装**: - Windows 用户可以从官方站点下载...

    Linux curl命令参数详解.docx

    Linux curl 命令参数详解 Linux curl 命令是通过 URL 语法在命令行下上传或下载文件的工具软件,它支持 HTTP、HTTPS、FTP、FTPS、Telnet 等多种协议,常被用来抓取网页和监控 Web 服务器状态。 一、抓取网页 ...

    curl命令详解 curl命令详解 curl命令详解 curl命令详解curl命令详解 curl命令详解 curl命令详解

    curl 命令详解 curl 命令是一种强大的命令行工具,用于传输数据规范的命令行工具,支持包括 HTTP、HTTPS、SCP、SFTP、TFTP 等多种协议。该命令可以用来下载和上传文件、查看 HTTP 头信息、设置 Cookie 和代理服务器...

    linux sftp、ftp上传(使用curl)

    总结起来,Linux中的SFTP和FTP上传可以通过curl命令行工具实现,结合适当的选项和参数,可以轻松地进行安全的文件传输。封装好的curl接口则进一步简化了开发过程,使得在各种应用程序中集成文件传输功能变得更加便捷...

    Linux-curl 命令用法大总结.docx

    Linux中的curl命令是一个非常强大的工具,它允许用户在命令行环境下执行HTTP、FTP、SMTP等协议的网络操作,包括文件的下载和上传。这个命令在系统管理、自动化脚本和远程数据交互中扮演着重要角色。以下是curl命令的...

    php CURL 命令详解

    curl命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解php CURL 命令详解...

    everything-curl linux命令curl的用法 英文版

    标题《everything-curl linux命令curl的用法 英文版》和描述《curl命令可用来下载文件,或者模拟http请求,而且支持非常多的协议,这是一篇非常全面的说明,英文文字版》透露了本文所涉及的核心内容是关于Linux环境...

    curl命令详解curl命令详解curl命令详解curl命令详解

    curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令详解curl命令...

    Linux C++ curl 文件下载功能代码

    在Linux系统中,C++与curl库结合可以实现强大的网络文件下载功能。curl是一个命令行工具,用于获取或传输数据,支持多种协议,包括HTTP、HTTPS、FTP等。在C++编程中,我们可以利用libcurl这个库来实现相同的功能。本...

    linux-一个将curl命令转为PythonNodejsRPHPGo代码的工具

    标题中的“Linux-一个将curl命令转为PythonNodejsRPHPGo代码的工具”揭示了一个实用的编程工具,它能够将curl命令转换成多种编程语言的等效代码,包括Python、Node.js、R、PHP和Go。这个工具对于开发者来说非常有用...

    windows 下可以使用curl命令

    1. **安装curl**:用户可以通过下载curl的预编译二进制包(如curl-7.62.0-win64-mingw),解压后将其路径添加到系统环境变量PATH中,这样就可以在任何目录下运行curl命令。 2. **基本语法**:curl命令的基本格式是`...

    curl命令详解,curl命令

    curl 命令详解 curl 命令是一种功能强大且灵活的命令行工具,用于传输数据指定的 URL。它支持包括 HTTP、HTTPS、FTP、FTPS、SCPV、TFTP 等多种协议。下面是对 curl 命令的一些常用参数的详细解释: 调试类 * -v, ...

    Linux Curl 命令满足你的工作需求!简直不要太香了

    总的来说,Curl命令是Linux环境中不可或缺的工具之一,其强大的功能和灵活性使得无论是简单的数据获取还是复杂的网络交互,都能够轻松应对。熟练掌握Curl的使用,对于提升工作效率和解决问题的能力大有裨益。

    深入理解 Linux curl 命令:功能详解与实用技巧

    深入理解 Linux curl 命令:功能详解与实用技巧

    ES-CURL命令使用 - 副本.docx

    CURL命令的基本格式为: ```markdown curl -H "Content-Type: application/json" -u username:password -X 请求方法 httpUrl -d '传输数据' ``` 在这个命令中,各部分的含义如下: 1. `-H` 选项用来设置HTTP请求...

    Linux中curl命令和wget命令的使用介绍与比较

    总结来说,curl和wget都是Linux中不可或缺的下载工具,它们各有特色,了解并掌握它们的使用,能够提高在Linux环境中的工作效率。如果系统中未预装这两个工具,可以通过包管理器(如Ubuntu中的`apt-get`)进行安装。

    curl命令详解资源合集完整版

    curl命令使⽤了libcurl库来实现,libcurl库常⽤在C程序中⽤来处理HTTP请求,curlpp是libcurl的⼀个C++封装,这⼏个东西可以⽤在抓取⽹页、⽹络监控等⽅⾯的开发,⽽curl命令可以帮助来解决开发过程中遇到的问题。...

    linux命令行下使用curl命令查看自己机器的外网ip

    您可能感兴趣的文章:Linux 中 CURL常用命令详解linux下为php添加curl扩展的方法Linux下命令行cURL的10种常见用法示例linux curl命令详解及实例分享Linux中curl命令和wget命令的使用介绍与比较linux shell中curl ...

    如何使用curl命令下载文件.docx

    curl 命令下载文件详解 在UNIX系统中,默认安装了curl工具,该工具支持多种协议,包括HTTP、HTTPS、FTP、FTPS、SFTP等。如果没有指定任何协议,默认使用HTTP协议。curl命令可以用来下载文件,并且提供了多种选项来...

Global site tag (gtag.js) - Google Analytics