zoukankan      html  css  js  c++  java
  • linux-curl网页访问和wget下载

    一:curl(网页访问,文件传输工具)

    curl可以下载,但是长项不在于下载,而在于模拟提交web数据,POST/GET请求,调试网页,等等。curl支持URL中加入变量,因此可以批量下载。;

    使用curl 来跟网站的API 交互,简便清晰。

    1、安装

    1.安装:

    sudo apt install curl

    2.查看是否成功:

    curl --version

    2、常用参数

    • -c,–cookie-jar:将cookie写入到文件
    • -b,–cookie:从文件中读取cookie
    • -C,–continue-at:断点续传
    • -d,–data:http post方式传送数据
    • -D,–dump-header:把header信息写入到文件
    • -F,–from:模拟http表达提交数据
    • -s,–slient:减少输出信息
    • -o,–output:将信息输出到文件
    • -O,–remote-name:按照服务器上的文件名,存在本地
    • –l,–head:仅返回头部信息
    • -u,–user[user:pass]:设置http认证用户和密码
    • -T,–upload-file:上传文件
    • -e,–referer:指定引用地址
    • -x,–proxy:指定代理服务器地址和端口
    • -w,–write-out:输出指定格式内容
    • –retry:重试次数
    • –connect-timeout:指定尝试连接的最大时间/s

    3、使用示例

    1、查看某网页(该方法大部分用来测试服务器是否能到达另一个网站):curl [URL]

    curl http://www.baidu.com

    2、访问HTTP认证页面

    curl –u user:pass URL

    3、 重定向保存: curl [URL] >> [你的命名]

    curl http://www.baidu.com >> baidu.html

    4、下载网页:curl -o [你的命名] [URL] ,如果有乱码可以使用iconv转码

    curl -o baidu.html www.baidu.com
    curl –s –o baidu.html www.baidu.com |iconv -f utf-8 #减少输出信息

    5、下载网页中具体某个文件:curl -O [URL]:

    curl -O http://www.baidu.com/a7.png

    6、指定proxy服务器以及其端口:curl -x [ip:端口] [URL]

    curl -x 192.168.0.1:1080 http://www.baidu.com

    7、模拟用户登陆,保存cookie信息到cookies.txt文件,再使用cookie登陆

    curl -c ./cookies.txt -F NAME=user -F PWD=***URL 
    curl -b ./cookies.txt –o URL

    8、获取和保存HTTP响应头headers:curl -D [保存格式] [URL]

    curl -I http://www.baidu.com
    curl -D ./header.txt http://www.baidu.com #将headers保存到文件中

    9、模仿浏览器:curl -A [UA] [URL]

    curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.baidu.com

    10、断点续传:curl -C -O [URL]

    curl -C -O http://www.linux.com/dodo1.JPG

    12、通过ftp上传和下载文件:curl -T [文件] -u username:password ftp:[URL] :

    curl -T filename ftp://user:pass@ip/docs #上传
    curl -T dodo1.JPG -u 用户名:密码 ftp://www.linux.com/img/ #上传
    curl -O ftp://user:pass@ip/filename #下载

    二:wget(用于文件下载,在安装软件时会经常用到。)

    wget是个专职的下载利器,简单,专一,极致;

    wget可以递归,支持断点。加 -c选项不怕断网

    1、安装

    1.安装wget:

    sudo apt install wget

    2.查看是否成功:

    wget --version

    3、用法:wget [OPTION]... [URL]...

    2、常用参数

    1 启动参数

    • -V,–version:显示版本号
    • -h,–help:查看帮助
    • -b,–background:启动后转入后台执行

    2 日志记录和输入文件参数

    • -o,–output-file=file:把记录写到file文件中
    • -a,–append-output=file:把记录追加到file文件中
    • -i,–input-file=file:从file读取url来下载

    3 下载参数

    • -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:设置进度条

    4 目录参数

    • -P,-directory-prefix=prefix:将文件保存到指定目录

    5 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文件

    6 FTP参数

    • -passive-ftp:默认值,使用被动模式
    • -active-ftp:使用主动模式

    7 递归下载排除参数

    • -A,–accept=list:分号分割被下载扩展名的列表
    • -R,–reject=list:分号分割不被下载扩展名的列表
    • -D,–domains=list:分号分割被下载域的列表
    • –exclude-domains=list:分号分割不被下载域的列表

    3、使用示例:

    1、使用wget下载单个文件 :wget [URL]

    wget http://cn2.php.net/distributions/php-5.6.13.tar.gz

    2、下载并以不同的文件名保存 :wget -o [你的命名] [URL]

    wget -o php5.6.tar.gz http://cn2.php.net/distributions/php-5.6.13.tar.gz

    3、使用wget断点续传:wget -c [上次下载的URL]

    wget -c http://cn2.php.net/distributions/php-5.6.13.tar.gz

    4、使用wget后台下载 :wget -b [URL] 

    wget -b http://cn2.php.net/distributions/php-5.6.13.tar.gz
    tail -f wget-log #查看文件下载进度

    5、使用wget下载到指定目录:wget [URL] -P [存储地址]

    wget http://cn2.php.net/distributions/php-5.6.13.tar.gz -P Download/

    6、使用wget用户名和密码认证下载,登陆ftp下载文件:

    wget --ftp-user=USERNAME --ftp-password=PASSWORD ftp://ip/filenam

    7、可以利用—spider参数判断网址是否有效

    wget –spider http://nginx.org/download/nginx-1.8.0.tar.gz

    8、自动从多个链接下载文件

    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

    三:区别

    curl由于可自定义各种请求参数所以在模拟web请求方面更擅长;wget由于支持ftp和Recursive所以在下载文件方面更擅长。类比的话curl是浏览器,而wget是迅雷9。

    1.下载文件

    curl -O http://man.linuxde.net/text.iso #O大写,不用O只是打印内容不会下载
    wget http://www.linuxde.net/text.iso #不用参数,直接下载文件

    2.下载文件并重命名

    curl -o rename.iso http://man.linuxde.net/text.iso #o小写
    wget -O rename.zip http://www.linuxde.net/text.iso #O大写

    3.断点续传

    curl -O -C -URL http://man.linuxde.net/text.iso #C大
    wget -c http://www.linuxde.net/text.iso #c小写

    4.限速下载

    curl --limit-rate 50k -O http://man.linuxde.net/text.iso
    wget --limit-rate=50k http://www.linuxde.net/text.iso

    5.显示响应头部信息

    curl -I http://man.linuxde.net/text.iso
    wget --server-response http://www.linuxde.net/test.iso

    6.wget利器--打包下载网站

    wget --mirror -p --convert-links -P /var/www/html http://man.linuxde.net/
  • 相关阅读:
    在Win7 64位电脑上安装Sql Server 2008 R2 Express
    尝试u盘重装系统
    摘自《北方人》
    编写一个换算GPA 的Application 程序,对于学生学习的每门课程,都输入两个整数:考试成绩和学分,考试成绩按如下公式换算: 85~100:4 75~84:3 60~74:2 45~59:1 44以下:0 GPA等于换算后每门课的成绩的学分加权平均值
    java编程题
    生成器并发处理其实就是函数的切换
    生成器与文档结合
    生成器函数
    生成器表达式、三元表达式、列表解析
    迭代,列表,字典,文件迭代
  • 原文地址:https://www.cnblogs.com/springsnow/p/12205279.html
Copyright © 2011-2022 走看看