如何在网站上找到损坏的链接

时间:2020-03-05 18:54:13  来源:igfitidea点击:

建议使用什么技术或者工具在网站上查找损坏的链接?

我可以访问日志文件,因此可以想象地解析这些文件以查找404错误,但是希望有一些自动化的工具可以跟踪(或者尝试跟踪)站点上的所有链接。

解决方案

回答

请参阅Firefox的LinkChecker。

对于Mac OS,有一个Integrity工具可以检查URL中是否有损坏的链接。

对于Windows,有Xenu的Link Sleuth。

回答

我们可以使用一种工具来解析日志文件并为我们提供"断开的链接"报告(例如,Analog或者Google网站站长工具),或者运行一个可以在网站上进行爬网并报告断开的链接的工具(例如,W3C链接检查器)。

回答

我喜欢W3C链接检查器。

回答

请参阅linkchecker工具:

LinkChecker is a free, GPL licensed website validator. LinkChecker checks links in web documents or full websites.

回答

最好的选择是使用我们选择的脚本语言将自己的蜘蛛组合在一起,可以按照以下方式递归完成:

// Pseudo-code to recursively check for broken links
// logging all errors centrally
function check_links($page)
{
    $html = fetch_page($page);
    if(!$html)
    {
        // Log page to failures log
        ...
    }
    else
    {
        // Find all html, img, etc links on page
        $links = find_links_on_page($html);
        foreach($links as $link)
        {
            check_links($link);
        }
    }
}

在网站受到Google一定程度的关注之后,他们的网站站长工具对于显示用户可能遇到的损坏链接非常有用,但这很反作用,死链接可能会存在数周,然后Google会对它们进行索引并记录404在网站站长面板中。

像上面那样编写自己的脚本,将向我们显示所有可能断开的链接,而无需等待google(网站站长工具)或者用户(访问日志中的404)绊倒他们。

回答

有一个名为CheckWeb的Windows应用程序。它不再开发,但是运行良好,并且代码是开放的(我相信是C ++)。

我们只需为其提供一个网址,它就会抓取网站(如果我们选择的话,还会显示外部链接),报告任何错误,图片/页面的"权重"等。

http://www.algonet.se/~hubbabub/how-to/checkweben.html

回答

在.NET应用程序中,可以将IIS设置为将所有请求传递给ASP.NET,然后在全局错误处理程序中可以捕获和记录404错误。除了搜寻网站以检查内部缺少的链接之外,我们还需要执行此操作。这样做可以找到其他网站上断开的链接,然后可以通过301重定向将其修复到正确的页面。

为了帮助内部测试网站,还有Microsoft SEO工具包。

当然,最好的技术是避免在编译时出现问题!在ASP.NET中,我们可以通过要求所有链接都通过每页上的静态方法生成所有链接来做到这一点,因此,在任何位置都不会生成任何给定的URL。例如http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx

如果我们想要一个完整的Ccrawler,可以在这里找到:http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/