Shell 命令--网站--总结自《Linux Shell 脚本攻略》
2014-09-12 11:29
519 查看
1.wget
用wget可以下载网页或远程文件 $ wget URL 或 $ wget URL1 URL2 URL# ...
-O(字母)指定输出文件名,如果存在同名文件,那么会先将该同名文件清空再将下载文件写入
-o 指定一个日志文件,从而不必将日志信息打印到stdout 例如 :$ wget ftp://example_domain.com/somefile.img -O dloaded_file.img -o log
-t 指定重试次数 例如:$ wget -t 5 URL
1)下载限速
--limit-rate 在命令中用k和m指定速度限制 $ wget --limit-rate 20k URL [code] --quota或-Q 指定最大下载配额(quota) $ wget -Q 100m URL
2)断点续传
-c 选项从断点开始继续下载 $ wget -c URL
3)复制或镜像整个网站
--mirror 使其像爬虫一样以递归的方式收集网页上所有的URL链接 $ wget --mirror URL
或者 $ wget -r -N -l DEPTH URL -r 递归 -N允许对文件使用时间戳 -l指定页面层级DEPTH
4)访问需要认证的HTTP或FTP页面
一些网页需要HTTP或FTP认证,可以用--user和--password提供认证信息,也可以不再命令行中指定密码,而是由网页提示并手动输入密码--password改为--ask-password. $ wget --user username --password pass URL
5)以POST方式发送数据
--post-data "string" 可以POST方式发送数据,其中的“名称-值”对要采用引用的形式。例如 $ wget URL --post-data "name=value" -o output.html
2.lynx
lynx是一个基于命令行的网页浏览器。它并不会为我们现实一堆原始的HRML代码,而是能够打印出网站的文本版本。用lynx命令的-dump选项将网页以ASCII字符的形式下载到文本文件中 $ lynx -dump URL > webpage_as_text.txt 这个命令会将所有的超链接作为文本输出的页脚列在References标题之下。
3.curl
curl并不将下载数据写入文件,而是写入标准输出。因此我们必须用重定向操作符将数据从stdout重定向到文件
$ curl http://www.baidu.com > index.html[/code]
--silent选项使得curl命令不显示进度信息
--progress选项显示形如 # 进度条
-O(字母)用来将下载数据写入文件,而非写入标准输出
例如 $ curl http://www.baidu.com/index.html --silent -O 写入和URL中相同文件名的文件中。因此要确保这是一个指向远程文件的URL
-d选项发送post请求 $curl URL -d "postvar=postdata&postvar2=postdata2" -d的参数内容应该以引用的形式给出。如果不适用引用,&会被shell解读为该命令应该作为后台进行运行。
1)断点续传
curl包含更高级的下载恢复特性,能够从特定的文件偏移处继续下载。$ curl URL/file -C offset 偏移量是以字节为单位的整数
-C选项 curl会自动计算出应该从哪里开始续传 $ curl -C URL
2)用curl设置参照页字符串
参照页(refer)是位于HTTP头部中的一个字符串,用来标识用户是从哪个页面到达当前页面的。如果用户点击了网页A中的某个链接,那么用户就会转到网页B,网页B头部的参照页字符串会包含网页A的URL $ curl --referer Referer_URL target_URL
3)用curl设置cookie
--cookie COOKIES需要以name=value的形式来给出。如果要指定多个cookie,用分号分割 $ curl http://example.com --cookie "user=slynux;pass=hack"
如果要将cookie另存一个文件,使用--cookie-jar选项。 $ curl URL --cookie-jar cookie_file
4)用curl设置用户代理字符串
用curl的--user-agent或-A选项可以设置用户代理: $ curl URL --user-agent "Mozilla/5.0"
用-H“头部信息”传递多个头部信息 $ curl -H "Host: www.slynux.org" -H "Accept-language: en" URL
5)限定curl可占用的带宽
$ curl URL --limit-rate 20k 在命令中用k和m指定下载速度限制
6)指定最大下载量
$ curl URL --max-filesize bytes
7)用curl进行认证
-u username:password可用来指定用户名和密码,也可以不指定密码,而在后续的运行过程中经指示输入密码,只需要使用-u username
8)只打印响应头部信息(不包括数据部分)
通过-I或-head就可以只打印HTTP头部信息,而无需下载远程文件
9)在curl中使用post
-d或--data以POST方式发送数据,如果需要发送多个变量,用&分割变量。需要注意的是:如果使用了&,那么该 “名称-值”对应以引用的形式出现、
$ curl --data "name=value" URL -o output.html
相关文章推荐
- Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》
- Shell 命令--echo tr ls--总结自《Linux Shell 脚本攻略》
- Shell 命令--文件创建、搜索命令--总结自《Linux Shell 脚本攻略》
- Shell 命令--paste--总结自《Linux Shell 脚本攻略》
- Shell 命令--cut--总结自《Linux Shell 脚本攻略》
- Shell常识--基本函数和简单命令rev--总结自《Linux Shell 脚本攻略》
- shell脚本攻略第二章总结---命令之乐
- Shell 常识--正则表达式,POSIX字符类以及元字符--总结自《Linux Shell 脚本攻略》
- BASH命令和SHELL脚本总结(18)使用ACK在指定类型的文件中进行查找
- BASH命令和SHELL脚本总结(19)递归地拷贝目录结构
- BASH命令和SHELL脚本总结(13)BASH中的快捷键和简写
- Linux Shell脚本攻略学习总结:二
- BASH命令和SHELL脚本总结(15)find和xargs和exec和rsync
- linux shell 脚本攻略学习5---find命令详解
- linux shell 脚本攻略学习7---tr命令详解
- Linux Shell脚本攻略学习总结:二
- BASH命令和SHELL脚本总结(7)判断篇
- BASH命令和SHELL脚本总结(5)赋值篇
- Linux Shell脚本攻略学习总结:三
- BASH命令和SHELL脚本总结(4)AWK篇