我有一个自动生成的大型网站的网站地图,其中包含了一些网址,这是导致404错误,我需要删除。我需要生成一个报告,只基于网站地图中的网址,而不是由网站上的不良链接造成的爬行错误。我看不到任何过滤爬网错误报告的方法来只包含这些URL。有谁知道我可以做到这一点的方法吗?
谢谢
发布于 2013-02-14 00:56:39
我不确定你能不能通过站长工具轻松地做到这一点,但是你自己去检查它们是微不足道的。下面是一个perl程序,它将接受一个sitemap文件并检查每一行,打印每个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-14 00:58:04
在WMT中没有任何本机内容。你会想要做一些Excel。
发布于 2013-02-14 21:01:31
您还可以将sitemap.xml导入A1网站分析器,并让它扫描它们。请参阅:http://www.microsystools.com/products/website-analyzer/help/crawl-website-pages-list/
在此之后,您可以过滤扫描结果,例如,404响应码,并导出到CSV,如果需要的话。(包括他们链接的地方的if-so-wanted )。
https://stackoverflow.com/questions/14855272
复制相似问题