1、网站下载 wget
[root@stone ~]# wget www.baidu.com
--2013-05-20 10:21:08--  http://www.baidu.com/
Resolving www.baidu.com... 115.239.210.26, 115.239.210.27
Connecting to www.baidu.com|115.239.210.26|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10480 (10K) [text/html]
Saving to: `index.html'
100%[===================================================================================================>] 10,480      --.-K/s   in 0.05s   
2013-05-20 10:21:08 (199 KB/s) - `index.html' saved [10480/10480]

[root@stone ~]# wget -O www.baidu.com www.baidu.com
--2013-05-20 10:25:28--  http://www.baidu.com/
Resolving www.baidu.com... 115.239.210.26, 115.239.210.27
Connecting to www.baidu.com|115.239.210.26|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10460 (10K) [text/html]
Saving to: `www.baidu.com'
100%[===================================================================================================>] 10,460      --.-K/s   in 0.05s   
2013-05-20 10:25:28 (191 KB/s) - `www.baidu.com' saved [10460/10460]

#-O指定输出文件名
#-t指定重试次数
#-o指定日志文件
#-limit-rate指定最大下载速度
#-Q或者--quota指定最大下载配额
#-c URL可以从断点继续下载
#--mirror下载一个网站的所有页面
#-r表示递归下载
#-l depth指定递归的层级,与-r配合使用
#--user --password指定用户名和密码
2、以格式化纯文本形式下载网页 lynx
[root@stone ~]# lynx -dump www.baidu.com > index.html 
3、curl入门
下载
[root@stone ~]# curl -C - -O http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100  1706  100  1706    0     0    285      0  0:00:05  0:00:05 --:--:--   373
[root@stone ~]# ll RPM-GPG-KEY-CentOS-6 
-rw-r--r-- 1 root root 1706 May 20 11:09 RPM-GPG-KEY-CentOS-6

#-C -表示断点续传
#-C offset表示从offset偏移量处续传
#-O表示将下载内容保存为与URL中最后相同文件名的文件中
#-o filename表示将下载的文件保存到指定的文件中
#--silent,-s表示静默下载,不显示进度信息
#--limit-rate限定下载速度
#--max-filesize指定可下载的最大文件大小
#-u username:password指定用户名和密码
#-u usernmae只指定用户名,密码在提示后输入
发送http请求
[root@stone ~]# curl -I www.baidu.com
HTTP/1.1 200 OK
Date: Mon, 20 May 2013 03:18:12 GMT
Server: BWS/1.0
Content-Length: 10460
Content-Type: text/html;charset=utf-8
Cache-Control: private
Set-Cookie: BDSVRTM=1; path=/
Set-Cookie: H_PS_PSSID=1420_2447_1944_1788_2249; path=/; domain=.baidu.com
Set-Cookie: BAIDUID=78C44F4DC793B800B02746B241A9C08C:FG=1; expires=Mon, 20-May-43 03:18:12 GMT; path=/; domain=.baidu.com
Expires: Mon, 20 May 2013 03:18:12 GMT
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Connection: Keep-Alive

#-I打印HTTP头部信息
[root@stone ~]# curl http://book.sarathlakshman.com/lsc/mlogs/submit.php -d "host=test-host&user=slynux"
<html>
You have entered :
<p>HOST : test-host</p>
<p>USER : slynux</p>
<html>

#-d(--data)发送POST请求并读取网站的HTML响应
4、制作图片抓取器及下载工具
[root@stone bin]# curl -s www.e-acic.com | egrep -o "<img src=[^>]*>"
<img src="/p_w_picpaths/ac_06.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/p_w_picpaths/ac_14.jpg" />
<img src="/uploads/2013/01/311556055003.jpg" />
<img src="/uploads/2013/01/301405454704.png" />
<img src="/uploads/2013/01/301500445838.jpg" />
<img src="/p_w_picpaths/wenzi1.png" />
<img src="/uploads/2013/01/301458396818.jpg" />
<img src="/uploads/2013/01/280942174858.png" />
<img src="/uploads/2013/05/171009004173.jpg" />
<img src="/uploads/2013/05/171009045981.png" />
<img src="p_w_picpaths/index_28.png" />
<img src="p_w_picpaths/index_30.png" />
<img src="p_w_picpaths/index_33.png" />
<img src="p_w_picpaths/index_34.png" />
[root@stone bin]# curl -s www.e-acic.com | egrep -o "<img src=[^>]*>" | sed 's/<img src=\"\([^"]*\).*/\1/g'
/p_w_picpaths/ac_06.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/p_w_picpaths/ac_14.jpg
/uploads/2013/01/311556055003.jpg
/uploads/2013/01/301405454704.png
/uploads/2013/01/301500445838.jpg
/p_w_picpaths/wenzi1.png
/uploads/2013/01/301458396818.jpg
/uploads/2013/01/280942174858.png
/uploads/2013/05/171009004173.jpg
/uploads/2013/05/171009045981.png
p_w_picpaths/index_28.png
p_w_picpaths/index_30.png
p_w_picpaths/index_33.png
p_w_picpaths/index_34.png

[root@stone ~]# cat bin/img_download.sh 
#!/bin/bash
if [ $# -ne 3 ];then
echo "Usage: $0 url -d directory"
exit -1
fi
for i in {1..4}
do
case $1 in
-d) shift;directory=$1;shift;;
*) url=${url:-$1};shift;;
esac
done
mkdir -p $directory
baseurl=$(echo $url | egrep -o "https?://[a-z.]+")
curl -s $url | egrep -o "<img src=[^>]*>" | sed 's/<img src=\"\([^"]*\).*/\1/g' > /tmp/$$.list
sed -i 's|^/|$baseurl/|' /tmp/$$.list
cd $directory
while read filename;
do
curl -C - -O "$filename"
done < /tmp/$$.list

5、查找网站中的无效链接
[root@stone ~]# cat bin/find_broken.sh 
#!/bin/bash
if [ $# -eq 2 ];
then
echo -e "Usage $0 URL\n"
exit -1
fi
echo Broken links:
mkdir /tmp/broken.lynx
cd /tmp/broken.lynx
lynx -traversal $1 > /dev/null
count=0
sort -u reject.dat > links.txt
while read link;
do
output=`curl -I $link -s | grep "HTTP/.*OK"`;
if [[ -z $output ]];
then
echo $links;
let count++
fi
done < links.txt
[ $count -eq 0 ] && echo No broken links found.

#运行到lynx -traversal $1 > /dev/null会卡住
6、跟踪网站变更
[root@stone ~]# cat bin/change.sh 
#!/bin/bash
if [ $# -eq 2 ];
then
echo -e "Usage $0 URL\n"
exit -1
fi
first_time=0
if [ ! -e "last.html" ];
then
first_time=1
fi
curl --silent $1 -o recent.html
if [ $first_time -ne 1 ];
then
changes=$(diff -u last.html recent.html)
if [ -n "$changes" ];
then
echo -e "Changes:\n"
echo "$changes"
else
echo -e "\nWebsite has no changes"
fi
else
echo "[Fist run] Archiving..."
fi
cp recent.html last.html

#检查不同的网站需要在不同的目录下面进行

转载于:https://blog.51cto.com/stonebox/1341928

《Linux Shell脚本攻略》读书笔记第五章 一网情深相关推荐

  1. Linux Shell脚本攻略 读书笔记

    内容目录: 嗨,Echo一下 给终端来点颜色 shell的控制结构 算术比较 目录操作 网站下载 tar 归档工具 rsync 备份系统快照 ftp自动传输 磁盘管理 故障排查 使用syslog记录日 ...

  2. linux cat 脚本,Linux Shell 脚本攻略 读书笔记 -- 201.cat的几种用法

    cat可以读取.显示和拼接文件内容 1. 打印单个文件: root@debian:/home/chicol/scripts# cat file.txt This is a line inside fi ...

  3. LINUX SHELL脚本攻略笔记[速查]

    LINUX SHELL脚本攻略笔记[速查] Linux Shell脚本攻略笔记[速查] 资源 shell script run shell script echo printf 环境变量和变量 pgr ...

  4. 《Linux Shell脚本攻略》学习笔记-第一章

    1.1 简介 计算机可以从文本文件(称为shell脚本)中读取并执行命令. sehll脚本不仅节省了时间,而且清楚明白地表明了所执行的操作. bash shell变成了UNIX和Linux中既成事实的 ...

  5. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  6. linux shell脚本攻略第3版_「技术干货」师傅说不会写shell脚本的网安不是一个好黑客,实战...

    shell脚本? 在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就 ...

  7. Linux Shell脚本攻略-调试脚本+函数和参数

    调试脚本 可以利用Bash内建的调试工具或按照易于调试的方式编写脚本 # 1. 使用选项-x,启用shell脚本的跟踪调试功能 $ bash -x script.sh # 打印出所执行的每一行命令以及 ...

  8. Linux Shell脚本攻略学习总结:一

    终端打印 终端打印的常用命令有两个:echo和print 首先,我先介绍echo 1.echo echo这个命令接受三种形式的参数,实例如下: echo "Hello World" ...

  9. 《Linux Shell脚本攻略》读书笔记第三章 以文件之名

    1.生成任意大小文件 dd [root@stone ~]# dd if=/dev/zero of=f1_dd bs=1M count=1 1+0 records in 1+0 records out ...

最新文章

  1. 爬虫之requests模块发送带参数的请求
  2. geany配置python_Linux系统下搭建基于Geany+Python开发环境
  3. 内蒙古公安原创扫黑除恶主题MV《以警之名》全国首发
  4. BIND 子域授权的实现和区域转发实现
  5. 【PC工具】大神级代码注释,漂亮实用的代码注释工具代码logo工具
  6. webpack 的 scope hoisting 是什么?
  7. ajax同步、异步区别及应用
  8. android:configChanges属性
  9. 剑指offer面试题[11]-数值的正整数次方
  10. 关键字AUTO_INCREMENT 重命名表 修改列的属性。
  11. OpenSSL密码库算法笔记——第1章 大整数的基本运算
  12. 计算机主机前耳机没声音,电脑前面耳机没声音的解决办法 电脑前面插耳机没声音怎么办...
  13. 百度、火星(高德)、84坐标系相互转换
  14. json格式的php文件怎么打开,json格式是什么?json格式文件怎么打开?
  15. html停止工作,update.exe已停止工作
  16. curl 请求日志_CURL常用命令
  17. Ble低功耗蓝牙和蓝牙mesh网络之间的关系
  18. RTL设计(6)- 伪随机数生成器
  19. 秒懂云通信:如何使用阿里云号码认证服务(小白指南)
  20. 安徽省2016“京胜杯”程序设计大赛_C_箭无虚发

热门文章

  1. IT治理和IT管理的区别
  2. 程序环境——翻译环境与执行环境
  3. 服务器系统防火墙例外,Windows Server 2012设置端口例外、防火墙设置方法
  4. 何以为「我来」?全方位解读笔记新秀高速增长
  5. zabbix-web前端配置
  6. 数据“土豪”电信云告诉你,如何“玩转”数据生态
  7. 移动设备将成为2014年最大的安全风险
  8. git fetch 命令
  9. 教你用java统计目录下所有文档的词频
  10. LVS DR模式 负载均衡服务搭建