wget 与 curl工具的用法

curl常用方式

设置用户身份代理    #伪装客户端身份为LT-browser
      curl -A LT-browser https://www.wsfnk.com

伪造来源网址       #伪装<URL> 来源网址qq.com,跳转过来的链接
      curl -e http://qq.com https://www.wsfnk.com

显示一次的http请求的通信过程
      curl -V https://www.wsfnk.com

仅显示http-head(http头部) 
      curl -I https://www.wsfnk.com

使用强制重定向    #curl默认不会启用跳转,本站没有开启http,所以他会自动强制跳转到 https://www.wsfnk.com
      curl -L http://www.wsfnk.com

限速下载(下载速度最大不会超过1Mbit/s)
      curl --limit-rate 1M -O http://www.gnu.org/software/gettext/manual/gettext.html

为CURL设置代理(指定代理主机和端口)
      curl -x proxysever.test.com:3128 http://google.co.in

CURL授权
      在访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权
      通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
      curl -u username:password URL
      curl -u username URL

Cookie相关
      使用用户名和密码登录系统,并将cookie信息存储在当前目录的cookie文件中
      -c 存储cookie到文件
      curl -d"name=zhangsan&password=123" http://localhost:8080/login -c ./cookie

      -b 携带cookie文件
      curl http://localhost:8080/login -b ./cookie

    模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆
    curl -c ./cookies.txt -F NAME=user -F PWD=***URL #NAME和PWD是表单属性不同,每个网站基本都不同
    curl -b ./cookies.txt –o URL

从FTP服务器下载文件
      若在url中指定的是某个文件路径而非某个文件,CURL则会列出该目录下的所有文件而并非下载该目录下的所有文件
      #列出public_html下的所有文件夹和文件
      curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

      #下载xss.php文件
      curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

上传文件到FTP服务器
      通过 -T 选项可将指定的本地文件上传到FTP服务器上
      #将myfile.txt文件上传到服务器
      curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

      #同时上传多个文件
      curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

      #从标准输入获取内容保存到服务器指定的文件中
      curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Curl执行GET/POST/PUT/DELETE操作
      curl -X PUT www.baidu.com
      curl -X DELETE www.baidu.com
      curl -X POST www.baidu.com
      curl -X POST -d"data=123&key=456" http://localhost:8080/search -v
      curl -X GET www.baidu.com

Curl上传文件
      curl --form "fileupload=@filename.txt" http://hostname/resource

如何实现断点续传

如何进行下载资源
    curl -o filename 'url'  #具体示例见下(url需要用单引号引起来,防止特殊字符干扰)
    curl -o CentOS-7.iso 'http://mirrors.163.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso'

当网络故障,中断下载后,如何实现,断点续传(#在刚才下载命令后面加上 -C - 并再次执行)
    curl -o CentOS-7.iso 'http://mirrors.163.com/centos/7.4.1708/isos/x86_64/CentOS-7-x86_64-Minimal-1708.iso' -C -

完整性校验(将得到的校验码与官方的对比,相同则文件完整)
    md5sum CentOS-7.iso
    sha1sum CentOS-7.iso

curl支持如下几种方式的URL:

      可以指定多个url,或者在花括号中指定url的多个部分。
      http://site.{one,two,three}.com

      可以用中括号指定数字或字母序列。
      ftp://ftp.numericals.com/file[1-100].txt
      ftp://ftp.numericals.com/file[001-100].txt    (with leading zeros)
      ftp://ftp.letters.com/file[a-z].txt

      可以指定多个序列。
      http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html

      可以在命令行指定任意数量的url,curl会按指定顺序获取url的内容。

      可以在一个范围内指定跳跃的步数。
      http://www.numericals.com/file[1-100:10].txt
      http://www.letters.com/file[a-z:2].txt

wget常用方式

#日志记录和输入文件参数
    -o,-output-file=file:把记录写到file文件中
    -a,-append-output=file:把记录追加到file文件中
    -i,-input-file=file:从file读取url来下载

#下载参数
    -bind-address=address:指定本地使用地址
    -t,-tries=number:设置最大尝试连接次数
    -c,-continue:接着下载没有下载完的文件
    -O,-output-document=file:将下载内容写入到file文件中
    -spider:不下载文件
    -T,-timeout=sec:设置响应超时时间
    -w,-wait=sec:两次尝试之间间隔时间
    -limit-rate=rate:限制下载速率
    -progress=type:设置进度条

#目录参数 及 其他参数
    -P,-directory-prefix=prefix:将文件保存到指定目录
    -b,-background:启动后转入后台执行

#HTTP参数
    -http-user=user:设置http用户名
    -http-passwd=pass:设置http密码
    -U,-user-agent=agent:伪装代理
    -no-http-keep-alive:关闭http活动链接,变成永久链接
    -cookies=off:不使用cookies
    -load-cookies=file:在开始会话前从file文件加载cookies
    -save-cookies=file:在会话结束将cookies保存到file文件

 #FTP参数
    -passive-ftp:默认值,使用被动模式
    -active-ftp:使用主动模式

#递归下载排除参数
    -A,-accept=list:分号分割被下载扩展名的列表
    -R,-reject=list:分号分割不被下载扩展名的列表
    -D,-domains=list:分号分割被下载域的列表
    -exclude-domains=list:分号分割不被下载域的列表

常用实例

下载单个文件
    wget http://baidu.com/123.txt

下载一个目录
    wget -p http://baidu.com/web-hook

断点续传
    wget -tries=20 -c http://nginx.org/download/nginx-1.8.0.tar.gz

后台下载,下载较大文件时我们可以这样做,这时会生成wget-log文件来保存下载进度
    wget -b http://nginx.org/download/nginx-1.8.0.tar.gz

自动从多个链接下载文件
    cat url_list.txt #先创建一个URL文件
http://nginx.org/download/nginx-1.8.0.tar.gz
http://nginx.org/download/nginx-1.6.3.tar.gz
    wget -i url_list.txt

限制下载速度
    wget –limit-rate=1m http://nginx.org/download/nginx-1.8.0.tar.gz

登陆ftp下载文件
    wget –ftp-user=user –ftp-password=pass ftp://ip/filenam

下载开启目录访问的所有文件,排除index.html,
    wget -r --reject="index.html*" http://123.123.123.123
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://www.wsfnk.com/archives/574.html
微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2020/6/20作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何?

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注