Вы можете загрузить локальную страницу, используя curl , а затем проверить ее, используя локальный валидатор, или повторить публикацию с помощью curl
в W3 Validator или в свой онлайн-валидатор HTML на ваш выбор. Или вы можете написать простого веб-паука на некотором языке сценариев и сканировать локальную сеть, проверяя каждую страницу как сканируемую. Пример класса сканера в Perl:
package Test::Crawler;
use Moose;
use WWW::Mechanize;
has client => (
is => 'ro',
isa => 'WWW::Mechanize',
default => sub { WWW::Mechanize->new },
);
has handler => (
is => 'ro',
isa => 'CodeRef',
default => sub {},
);
sub crawl
{
my ($self, $url, $visited) = (@_, {});
# Already seen that.
return if $visited->{$url}++;
# Not seen yet, get.
$self->client->get($url);
$self->handler->($url, $self->client);
# Follow all links.
my @uris = map { $_->URI } $self->client->links;
for my $uri (@uris) {
# Skip mailtos, ftp and such.
next if $uri->scheme;
# Skip external links.
next if $uri->host;
$self->crawl($uri->rel, $visited);
}
}
И образец подпрограммы для проверки с использованием validator.nu :
sub is_valid {
my ($code, $page_url) = @_;
my $ua = LWP::UserAgent->new;
my $url = 'http://validator.nu/?out=gnu';
my $response = $ua->post($url, Content_Type => 'text/html', Content => $code);
return $response->as_string !~ /error/;
}