赞
踩
Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件
wget 网址(ip地址)/下载路径/要下载的文件
wget https://download.redis.io/releases/redis-6.0.8.tar.gz
- -O 选项以其他名称保存下载的文件 wget 下载后的名称 网址(ip地址)/下载路径/要下载的文件
- -P 选项将文件下载到指定目录 wget 要下载到的路径 网址(ip地址)/下载路径/要下载的文件
- -c 选项断点续传
- 当我们下载一个大文件时,如果中途网络断开导致没有下载完成,我们就可以使用命令的-c选项恢复下载, 让下载从断点续传,无需从头下载。 wget -c 网址(ip地址)/下载路径/要下载的文件
- -b 选项在后台下载 wget -b 网址(ip地址)/下载路径/要下载的文件
- 要查看下载状态,可以使用tail -f wget-log查看。 "
- -i 选项下载多个文件
- 如果先要一次下载多个文件,首先需要创建一个文本文件, 并将所有的url及下载路径添加到该文件中,每个url都必须是单独的一行 wget -i 存放的文本文件 "
- -U 选项设定模拟下载
- 如果远程服务器阻止wget下载资源,我们可以通过-U选项模拟浏览器进行下载
- wget -U 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.43 Safari/537.36' 网址(ip地址)/下载路径/要下载的文件"
- --tries 选项增加重试次数
- 如果网络有问题或下载一个大文件有可能会下载失败,wget默认重试20次,我们可以使用-tries选项来增加重试次数。 wget --tries=40 网址(ip地址)/下载路径/要下载的文件"
- 通过FTP下载如果要从受密码保护的FTP服务器下载文件,需要指定用户名和密码,格式如下:
- wget --ftp-user=<username> --ftp-password=<password> url"
curl是一个命令行访问URL的计算机逻辑语言的工具,也是命令行下工作的文件传输工具,习惯称cURL为下载工具
curl url
- -o (小写)保存网页
- curl -o 保存后的文件名 url
- 测试网页返回值:curl -o /dev/null -s -w %{http_code} url 正常返回200 -s : 不显示下载进度信息
- -w:完成请求传输后,使 curl 在 stdout 上显示自定义信息
- 格式是一个字符串,可以包含纯文本和任意数量的变量(下方详解)
- -O (大写)保存网页中的文件
- curl -O url/要保存的文件名
- 可循环下载 :(有时候下载图片可以能是前面的部分名称是一样的,就最后的尾椎名不一样):
- curl -O http://www.linux.com/dodo[1-5].JPG 下载dodo1,dodo2,dodo3,dodo4,dodo5
- 下载重命名:hello与bb文件夹内都有dodo1,dodo2,dodo3,dodo4,dodo5文件,下载后会覆盖,所以就要重命名
- curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG 下载后的文件名就会变成:hello_dodo1、bb_dodo1 通过ftp下载文件(curl提供两种方法)
- curl -O -u 用户名:密码 ftp://www.linux.com/dodo1.JPG
- curl -O ftp://用户名:密码@www.linux.com/dodo1.JPG 显示/不显示下载进度信息
- curl -#(显示)/-s(不显示) -O http://www.linux.com/dodo1.JPG 断点续传:文件过大,网路不稳定,防止下载过程中掉线
- curl -C -O http://www.linux.com/dodo1.JPG 掉线后可用此参数继续下载,无需重新开始
- 上传文件:
- curl -T 要上传的文件名 -u 用户名:密码 ftp服务器的url与要上传到的路径
- -r 分块下载:当下载的东西过大时,那个时候就可以使用分块下载
- curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
- curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
- curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG 200- 代表200到最后 cat dodo1_part* > dodo1.JPG 这样就可以查看dodo1.JPG了
- -x 指定proxy服务器以及其端口 (使用代理服务器上网或者因为使用curl别人网站而被别人屏蔽IP地址的时候)
- curl -x proxy的ip:端口 url
- -c 保存http的response里面的cookie信息
- curl -c 保存cookie的文件名 url
- -D 保存http的response里面的header信息
- curl -D 保存header的文件名 url -c(小写)产生的cookie和-D里面的cookie是不一样的。
- -b 使用cookie访问网站 很多网站都是通过监视你的cookie信息来判断你是否按规矩访问他们的网站的,因此我们需要使用保存的cookie信息,参数格式可以是字符串,也可以是文件
- curl -b 保存cookie的文件 url
- -A 模仿浏览器 有些网站需要使用特定的浏览器去访问他们,有些还需要使用某些特定的版本。
- curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" url 内为模仿的浏览器及版本 为 IE8.0"
- -e 伪造referer(盗链)很多服务器会检查http访问的referer从而来控制访问。
- 比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的referer地址不是首页的地址,就断定那是个盗连了
- curl -e "首页rul" 邮箱url 这样就会让服务器其以为你是从www.linux.com点击某个链接过来的"
- -f 显示抓取错误
- curl -f url/error"
- -w 指定输出内容
- curl -o /dev/null -s -w %{http_code} 192.168.1.10 搭配-o /dev/null 下载到空(丢弃)目的为不显示网页源码 -s 不显示下载进度条,这样返回的就只有状态码(根据变量)了 变量:
- 使用格式 %{变量名} time变量某个请求的响应特别慢,那想要分析为什么这个请求慢,到底是哪一步耗时长
-
- url_effective 最终获取的url地址,尤其是当你指定给curl的地址存在301跳转,且通过-L继续追踪的情形。
- http_code http状态码,如200成功,301转向,404未找到,500服务器错误等
- http_connect 在对 curl CONNECT 请求的最后响应(来自代理)中找到的数字代码
- time_total 总时间,按秒计。精确到小数点后三位。
- time_namelookup DNS解析时间,从请求开始到DNS解析完毕所用时间。
- time_connect 连接时间,从开始到建立TCP连接完成所用时间,包括前边DNS解析时间,如果需要单纯的得到连接时间,用这个time_connect时间减去前边time_namelookup时间。以下同理,不再赘述。
- time_appconnect 连接建立完成时间,如SSL/SSH等建立连接或者完成三次握手时间。
- time_pretransfer 从开始到准备传输的时间。
- time_redirect 重定向时间,包括到最后一次传输前的几次重定向的DNS解析,连接,预传输,传输时间。
- time_starttransfer 开始传输时间。在发出请求之后,Web 服务器返回数据的第一个字节所用的时间
- size_download 下载大小。
- size_upload 上传大小。
- size_header 下载的header的大小
- size_request 请求的大小。
- speed_download 下载速度,单位-字节每秒。
- speed_upload 上传速度,单位-字节每秒。
- content_type 就是content-Type,不用多说了,这是一个访问我博客首页返回的结果示例
- num_connects 在最近的转移中建立的新连接数。
- num_redirects 在请求中跟随的重定向的数量。
- redirect_url 当发出HTTP请求时没有使用-L来跟随重定向时,这个变量将显示重定向将带您到的实际URL。
- ftp_entry_path 登录到远程FTP服务器时,初始路径libcurl最终到达的位置。
- ssl_verify_result ssl认证结果,返回0表示认证成功。
- remote_ip 目标服务器的远程ip(ipv4、ipv6) curl -o /dev/null -s -w %{remote_ip} www.qq.com local_ip 为自己的ip
- remote_port 目标服务器的远程端口
- response_code 与http_code相同
- -L 自动跳转 有的网址是自动跳转的。使用 -L 参数,curl 就会跳转到新的网址
- curl -L url
- -i/I 显示/只显示响应体
- curl -i/I url
- -v 显示通信过程 v 参数可以显示一次 http 通信的整个过程,包括端口连接和 http request 头信息。
- curl -o /dev/null -s -v url 此处作用与上方相同 ,为了只显示通信过程
- 更加详细的通信过程 curl --trace 保存信息的文件 url 与 curl --trace-ascii 保存信息的文件url cat 文件名 查看过程信息
- 发送表单信息
- get方法(GET 方法相对简单,只要把数据附在网址后面就行。):curl example.com/form.cgi?data=xxx 默认为get"
- post方法(必须把数据和网址分开,curl 就要用到 --data 或者 -d 参数。) : curl -X POST --data "data=xxx" example.com/form.cgi
- 如果你的数据没有经过表单编码,还可以让 curl 为你编码,参数是 --data-urlencode
- curl -X POST--data-urlencode "date=April 1" example.com/form.cgi
- http动词:curl 默认的 HTTP 动词是 GET,使用 -X 参数可以支持其他动词。
- 例: curl -X DELETE url
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。