curl在windows下的安装和curl命令详解 | 您所在的位置:网站首页 › curl支持 › curl在windows下的安装和curl命令详解 |
curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 语法:# curl [option] [url] 这样就就可以获取到指定url中的文件,比如一个简单的例子: 一般这种工具在Linux中使用广泛,在Linux中进行安装只需要使用命令: yum install curl 这个命令就可以进行安装然后使用了。 但我们想在本地的windows中使用这个工具怎么办呢?下面我们就来讨论下如何在windows环境中使用这一个工具。 1.下载curl的压缩包 下载地址:https://curl.haxx.se/download.html 下载后进行解压到文件夹,记住这个文件夹,接下来要进行相关环境配置 2.curl环境配置 在系统的环境配置中配置curl运行环境,新增CURL_HOME变量,变量值为你刚刚解压的路径(跟jdk环境配置一样) 然后再path中添加路径: 新建 保存退出,打开命令行,输入命令:curl --help 在控制台中可以看到百度的网页的信息已经在控制台中显示出来了 3.curl命令详解 1、基本用法 2、保存访问的网页 a:使用linux的重定向功能保存 完成后在该目录下就可以看到刚刚扒的百度的首页 b:可以使用curl的内置option:-o(小写)保存网页 删除刚刚扒的百度的首页baidu.html,然后使用该命令重新进行扒 你再看看刚刚的文件夹是不是baidu.html又存在了 c:也可以抓取一个网页中的某一个子文件 3、测试网页返回值 # curl -o /dev/null-s -w % www.linux.com Ps:在脚本中,这是很常见的测试网站是否正常的用法 4、指定proxy服务器以及其端口 proxy代理下载,是通过连接一台中间服务器间接下载url网页的过程,不是url直接连接网站服务器下载 免费的中间台历服务器又很多,这里使用米扑代理(因为每天提供20个免费的代理),选择一台中国的免费代理服务器为例,来介绍proxy代理抓取网页: 118.25.226.228:9999(ip为218.107.21.252;port为9999,中间以冒号“:”隔开,组成一个套接字 抓取百度首页,注意将上次抓取的baidu.html删除掉 再次打开,可i一看到baidu.html(由于上面指定了代理过来的名为aaaaa)再次存在了 打开可以看到是百度首页的信息 注:-x表示代理服务器(ip:port),即curl先连接到代理服务器118.25.226.228:9999,然后再通过118.25.226.228:9999下载百度首页,最后118.25.226.228:9999把下载的百度首页传给curl至本地(curl不是直接连接百度服务器下载首页的,而是通过一个中介代理来完成) 关于代理服务器,可以推荐米扑,上面有各个地区免费的开放代理点 5、cookie 有些网站是使用cookie来记录session信息。对于chrome这样的浏览器,可以轻易处理cookie信息,但在curl中只要增加相关参数也是可以很容易的处理cookie a:保存http的response里面的cookie信息。内置option:-c(小写) 执行后cookie信息就被存到了cookiec.txt里面了 打开可以看到cookie信息已经保存到本地了 注:以下的一些命令,有些我不做演示 b:保存http的response里面的header信息。内置option: -D 执行后cookie信息就被存到了cookied.txt里面了 注意:-c(小写)产生的cookie和-D里面的cookie是不一样的。 c:使用cookie 很多网站都是通过监视你的cookie信息来判断你是否按规矩访问他们的网站的,因此我们需要使用保存的cookie信息。内置option: -b 6、模仿浏览器 有些网站需要使用特定的浏览器去访问他们,有些还需要使用某些特定的版本。curl内置option:-A可以让我们指定浏览器去访问网站 # curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.baidu.com 这样服务器端就会认为是使用IE8.0去访问的 7、下载文件 我们以百度首页的一张图片为例 a:利用curl下载文件。 #使用内置option:-o(小写) # curl -o baidu.jpg https://www.baidu.com/img/bd_logo1.png #使用内置option:-O(大写) # curl -O https://www.baidu.com/img/bd_logo1.png 这样就会以服务器上的名称保存文件到本地 b:循环下载 有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样 # curl -O https://www.baidu.com/img/bd_logo[1-5].png 这样就会把db_logo1,db_logo2,db_logo3,dodo4,dodo5全部保存下来 c:下载重命名 # curl -O https://www.baidu.com/img//bd_logo[1-5].png 由于下载的hello与bb中的文件名都是bd_logo1,bd_logo2,bd_logo3,bd_logo4,bd_logo5。因此第二次下载的会把第一次下载的覆盖,这样就需要对文件进行重命名。 # curl -o #1_#2.JPG https://www.baidu.com/img//bd_logo[1-5].png 这样在hello/bd_logo1.JPG的文件下载下来就会变成hello_bd_logo1.JPG,其他文件依此类推,从而有效的避免了文件被覆盖 d:通过ftp下载文件 curl可以通过ftp下载文件,curl提供两种从ftp中下载的语法 # curl -O -u 用户名:密码 ftp:https://www.baidu.com/img/bd_logo1.png# curl -O ftp://用户名:密码@https://www.baidu.com/img/bd_logo1.png e:显示下载进度条 # curl -# -O https://www.baidu.com/img/bd_logo1.png f:不会显示下载进度信息 8、断点续传 在windows中,我们可以使用迅雷这样的软件进行断点续传。curl可以通过内置option:-C同样可以达到相同的效果 如果在下载bd_logo1.PNG的过程中突然掉线了,可以使用以下的方式续传 # curl -C -O https://www.baidu.com/img/bd_logo1.png 9、上传文件 curl不仅仅可以下载文件,还可以上传文件。通过内置option:-T来实现 # curl -T db_logo1.JPG -u 用户名:密码 ftp:服务器地址 这样就向ftp服务器上传了文件bd_logo1.JPG 10、显示抓取错误 以上就是curl工具在windows中的安装和curl命令的使用,有一些curl命令我这里我选了集中典型的做了演示,其他的命令可以自己尝试看看。 |
CopyRight 2018-2019 实验室设备网 版权所有 |