`

linux 下访问 URL的命令curl---命令行浏览器

阅读更多

 

1) curl URL

回车之后,URL的http结果会打印在屏幕上

2) 如果想存储http结果,用curl的内置option就好,用这个option: -o

curl -o page.html url

屏幕上会出现一个下载页面进度指示,等进展到100%下载完成。

3) 如果需要通过代理访问,使用option:-x可以指定http访问所使用的proxy服务器及其端口: 

curl -x 123.45.67.89:1080 -o page.html URL

4) 如果需要存储cookie信息,使用option: -D 

curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt URL

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

5) 如果想使用上次留下的cookie信息,则需要把上次的cookie信息追加到http request中去,使用option:-b

curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt url

这样就可以模拟几乎所有的访问网页操作了。

6) 有些网站要求我们使用固定的浏览器进行访问,使用curl同样可以模拟,只需要把浏览器信息加入http request中即可,使用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 URL

这样,服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的IE6.0

而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"则可以服务端Linux上的Netscape 4.73。

7) 有些网站做了防盗链的处理,就是检查http访问的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 "www.baidu.com" -o page.html -D cookie0001.txt URL

这样就是告诉服务器,你是从百度点击某个链接过来的

8) 使用option:-o可以下载文件,同时使用option:-O也可以下载,并按照服务器上的名字自动保存到本地 curl -O http://.../test.JPG

-O支持正则表达式,curl -O  http://.../test [1-10].JPG,可以下载test1.JPG….test10.JPG

下面的写法:curl -O #2_#1.jpg  http://.../~{1,2}/test [1-10].JPG 可以下载~1、~2下的1-10的文件并且命名为test1_~1.jpg,test1_~2.jpg。#2、#1 是变量,指的是{1,2}的部分,以避免文件名重复。

9) curl支持分模块下载和断点续传

比如我们有一个http://.../~zzh/test.mp3 要下载

可以用这样的命令:

curl -r 0-10240 -o "test.part1" http:/…/~zzh/ test.mp3 &\

curl -r 10241-20480 -o "test.part2" http:/…/~zzh/ test.mp3 &\

curl -r 20481-40960 -o "test.part3" http:/…/~zzh/ test.mp3 &\

curl -r 40961- -o "test.part4" http:/…/~zzh/ test.mp3

这样完成分块下载,然后再把这些文件合并起来

如果你用UNIX或苹果,用 cat test.part*  test.mp3就可以;如果用的是Windows,用copy /b 来解决。

上面讲的都是http协议的下载,其实ftp也一样可以用。

curl -u name:passwd ftp://ip:port/path/file

或者curl ftp://name:passwd@ip:port/path/file

10) 说完下载,接下来是上传,上传的option是 -T

向ftp传一个文件: curl -T localfile -u name:passwd ftp://upload_site:port/path/

向http服务器上传文件:curl -T localfile http://.../~zzh/abc.cgi

注意,这时候使用的协议是HTTP的PUT method.

http提交一个表单,比较常用的是POST模式和GET模式

GET模式什么option都不用,只需要把变量写在url里面就可以了

比如:curl http://www.waynerQiu.com/login.cgi?user=nickwolfe&password=12345

而POST模式的option则是 -d

比如,curl -d "user=nickwolfe&password=12345" http://www.waynerQiu.com/login.cgi

就相当于向这个站点发出一次登陆申请;

到底该用GET模式还是POST模式,要看对面服务器的程序设定。

一点需要注意的是,POST模式的文件上传,比如

<form method="POST" enctype="multipar/form-data" 

action="http://... /~zzh/up_file.cgi">

<input type=file name=upload>

<input type=submit name=nick value="go">

</form>

这样一个HTTP表单,我们要用curl进行模拟,就该是这样的语法:

curl -F upload=@localfile -F nick=go http://.../~zzh/up_file.cgi

11) https的时候使用本地证书,可以使用option:-E

curl -E localcert.pem https://remote_server


分享到:
评论

相关推荐

    curl-7.64.0-win64-mingw.zip

    安装`curl-7.64.0-win64-mingw.zip`后,解压到合适的位置,然后将bin目录添加到系统PATH环境变量中,就可以在命令提示符(cmd)下直接使用`curl`命令了。例如,下载一个网页内容,只需输入`curl http://example.com`...

    curl-7.60.0.tar.gz

    2. **命令行用法**:在命令行中,可以输入`curl [选项] [URL]`来执行请求。例如,`curl http://example.com`将下载指定网页的内容。 3. **参数设置**:curl有许多可选参数,如`-L`用于跟随重定向,`-O`保存远程文件...

    latest curl-7.61.1_6-win32-mingw

    `curl`是一个强大的命令行工具,用于在操作系统与互联网之间传输数据,如文件、URL等。这个`latest curl-7.61.1_6-win32-mingw`是`curl`的一个特定版本,针对Windows 32位系统编译的 Mingw 版本。Mingw(Minimalist ...

    curl-7.15.0

    cURL(Client URL Library)是一个强大的命令行工具和库,用于传输数据,特别是通过HTTP、HTTPS等网络协议。这个包对于开发者来说非常重要,因为它允许PHP应用程序与其他Web服务进行交互,如API调用、文件上传和下载...

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

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

    curl命令详解.docx

    `curl`命令是Linux系统中一个强大的命令行工具,用于传输数据到或从服务器,支持多种协议,包括HTTP、HTTPS、FTP、FTPS等。它允许用户从命令行执行网络请求,广泛应用于自动化脚本、数据抓取和调试网络服务。下面...

    curl-7.73.0.tar.xz

    curl命令是利用URL语法在命令行下工作的文件传输工具,1997年首次发行,常用来请求 Web 服务器----可以看做是基于命令行运行的浏览器。它的名字就是客户端(client)的 URL 工具的意思。

    curl-7.32.0.tar.gz

    默认情况下,它会被安装到 `/usr/local/bin` 目录下,使得所有用户都可以访问。这个步骤可能需要管理员权限(使用 `sudo`)。 需要注意的是,对于不同的 Linux 发行版,可能有预编译的二进制包可以直接通过包管理器...

    Centos环境下安装curl

    curl是一个利用URL语法在命令行方式下工作的文件传输工具,它支持多种协议,包括HTTP、HTTPS、FTP等,并且可以用于上传和下载文件。对于Web开发者而言,安装并让PHP支持curl是非常必要的。 #### 二、curl的基本功能...

    curl浏览器工具-还不够详细?

    在Linux和Windows系统中,`curl`被广泛使用,尤其在自动化脚本和命令行操作中,它的功能强大且灵活,是网络数据传输的得力助手。 一、`curl`的基本使用 `curl`的基本语法是`curl [选项] URL`。例如,要从一个网页...

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

    关于curl命令行基础的介绍,文件详细说明了命令行选项。不同的curl版本可能支持不同的命令行选项,因此用户需要根据所使用的curl版本来选择合适的参数。比如,用户可以使用特定的命令行选项来处理URL,例如URL通配符...

    curl-libcurl

    CURL库不仅适用于命令行工具,还常被集成到其他软件项目中,以实现复杂的网络数据传输和交互。 **一、CURL库的核心特性** 1. **多协议支持**:curl库能够处理多种网络协议,包括HTTP/1.x、HTTP/2、HTTPS、FTP、FTPS...

    24. Linux开发-curl调用网络接口.pdf

    在Linux系统中,`curl`和`wget`是两个非常常用的命令行工具,用于从互联网上获取资源。本文将重点介绍`curl`命令的使用,包括GET和POST请求的发送,以及结合CJSON库解析HTTP接口返回的数据。此外,还会简要提及Linux...

    网页抓取工具curl

    5. **故障排查**:当网页访问出现问题时,可以使用curl 模拟浏览器请求,帮助定位问题。 6. **安全验证**:测试HTTPS连接的证书和加密算法,确保通信安全。 **学习curl** 掌握curl 的使用,首先需要了解其基本...

    Linux curl命令详解

    Linux中的`curl`命令是一个非常强大的工具,用于在命令行环境中进行文件的上传和下载,尤其在HTTP、HTTPS、FTP等协议的交互中扮演着重要角色。它支持多种选项来定制请求行为,使得用户能够灵活地操作网络资源。 1. ...

    curl win32.rar

    总的来说,"curl win32.rar"提供了一整套在Windows环境下使用curl命令行工具所需的所有组件。通过这个工具,用户可以轻松地在命令行界面中执行各种网络任务,如下载文件、获取网页源代码、上传数据等,而无需图形...

    curl安装包

    curl的基本用法是在命令行中输入`curl [选项] [URL]`。例如,获取一个网页的HTML内容: ``` curl http://example.com ``` 以下是一些常用的curl选项: - `-L`:跟随重定向。 - `-I`:只显示响应头信息。 - `-o` ...

Global site tag (gtag.js) - Google Analytics