1

我有一个为大型网站自动生成的站点地图,其中包含许多导致我需要删除的 404 错误的 URL。我需要仅基于站点地图中的 URL 生成报告,而不是由站点上的错误链接引起的抓取错误。我看不到任何过滤抓取错误报告以仅包含这些 URL 的方法。有谁知道我可以实现这一目标的方法?

谢谢

4

3 回答 3

2

我不确定您是否可以通过网站管理员工具轻松完成此操作,但您自己检查它们很简单。这是一个 perl 程序,它将接受站点地图文件并检查每一行,打印每个 url 及其状态。

#!/usr/bin/perl
use strict;
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
while (my $line = <>){
    if ($line =~ /\<loc\>(.*?)\<\/loc\>/){
        my $url = $1;
        my $response = $ua->get($url);
        my $status = $response->status_line;
        $status =~ s/ .*//g;
        print "$status $url\n";
    }
}

我将它保存为 checksitemapstatus.pl 并像这样使用它:

$ /tmp/checksitemap.pl /tmp/sitemap.xml 
200 http://example.com/
404 http://example.com/notfound.html
于 2013-02-13T16:56:39.417 回答
2

WMT 本身没有任何内容。你会想做一些Excel。

  1. 下载失效链接列表
  2. 获取您的站点地图链接列表。
  3. 将它们并排放置。
  4. 使用 VLOOKUP 匹配列(http://www.techonthenet.com/excel/formulas/vlookup.php
  5. 作为奖励,使用一些条件格式可以更容易地查看它们是否匹配。然后,按颜色排序。
于 2013-02-13T16:58:04.350 回答
2

您还可以将 sitemap.xml 导入 A1 网站分析器并让它扫描它们。请参阅:http: //www.microsystools.com/products/website-analyzer/help/crawl-website-pages-list/

之后,您可以通过例如过滤扫描结果。404 响应代码并在需要时将其导出为 CSV。(包括如果想要从它们链接的地方。)

于 2013-02-14T13:01:30.940 回答