zoukankan      html  css  js  c++  java
  • linux shell 查找网站中无效的链接

    要识别链接并从中找出无效链接,我们使用lynx和curl命令。其中lynx有一个选项-traversal,能够以递归方式访问网站页面并建立网站中所有超链接的列表。用curl验证每一个链接的有效性。

    脚本如下:

    #! /bin/bash

    #文件名:find_broken.sh

    #用途:查找网站中的无效连接

    if [ $# -ne 1 ]

    then

            echo -e "Usage:$0 URL "

            exit 1

    fi

    echo Broken links

    mkdir /tmp/$$.lynx    #$$:表示当前脚本运行的进程号

    cd /tmp/$$.lynx

    lynx -traversal $1 > /dev/null

    count=0

    sort -u reject.data > links.txt      

    #sort -u 与uniq命令基本相似,区别参考  https://blog.csdn.net/yilovexing/article/details/79237214

    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 echo No broken links found

    工作原理:lynx -traversal URL会在工作目录下生成数个文件,其中包括reject.date,该文件包含网站中的所有链接。sort -u 用来建立一个不包含重复项的列表。然后我们迭代每一个链接,并通过curl -I检验接受到的响应头部。如果响应头部的第一行包含HTTP/1.0 200 OK,就表示该链接正常。

    lynx命令

    作用:终端上的纯文本模式的网页浏览器,没有JS引擎,不支持CSS排版、图形、音视频等多媒体信息。

    格式:lynx [参数]

    参数:

    -case:搜索字符串时区分大小写

    -ftp:关闭ftp功能

    --color:激活彩色模式

    --reload:更新首页代理服务器的缓存

    --help:显示帮助

    -traversal:以递归方式访问网站页面并建立网站中所有超链接列表。

  • 相关阅读:
    win10系统ping另一台电脑上虚拟机的IP
    -bash: locate: command not found
    oracle 数据库 主键索引重建
    SSM整合记录
    IE11安装需要获取更新-安装失败
    Unicode与中文的转换-javascript
    Unicode与中文的转换-java
    正则表达式--学习
    一段过滤HTML标签的代码
    出现$(#form).validate is not a function的问题 (就是validate验证不了)
  • 原文地址:https://www.cnblogs.com/xiangbing123/p/15000718.html
Copyright © 2011-2022 走看看