我们需要检查一个页面的所有连接,是否是无效的,那么需要借助HTTP工具来处理的话,很简单了

我们可以借助lynx和curl,lynx有一个选项 -traversal,能够递归的方式获取页面,并且显示对应的超链接的列表,配合curl可以验证每一个连接的有效性

整体的查找脚本如下

#! /bin/bash

#用途: 查找无效连接

if [ $# -eq 2 ];

then

echo -e “$Usage $0 URL\n”

exit -1 ;

fi

echo Broken links:

mkdir /tmp/$$.lynx

cd /tmp/$$.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 $link;

let count++

fi

done < links.txt

[ $count -eq 0] && echo no link is fai

lynx -traversal URL 会在目录下生成数个文件,其中包含了reject.dat

sort -u用来建立一个不包含重复项的列表,我们依次的进行迭代遍历,并且通过curl -I来进行检验

如果响应头部的第一行包含了HTTP/1.0 200 OK,就说明连接正常,显示其他响应信息则失效,保存在link.txt

发表评论

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