我有一个自动生成的大型网站站点地图,其中包含一些导致我需要删除的404错误的网址。我需要仅基于站点地图中的URL生成报告,而不是由站点上的错误链接导致的爬网错误。我看不到任何过滤抓取错误报告的方法,只包含这些网址。有谁知道我可以实现这一目标的方式?
由于
答案 0 :(得分: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
答案 1 :(得分:2)
WMT内部没有任何内容。你会想要做一些Excel。
答案 2 :(得分:2)
您还可以将sitemap.xml导入A1 Website Analyzer并让它们进行扫描。看到: http://www.microsystools.com/products/website-analyzer/help/crawl-website-pages-list/
之后,您可以通过e。,g过滤扫描结果。 404响应代码,如果需要,将其导出为CSV。 (包括他们所处的联系方式。)