Соотношение текста и кода в Perl - PullRequest
0 голосов
/ 07 марта 2012

Я ищу способ определить отношение кода к тексту веб-страницы в Perl. Не ищите ничего сложного, просто распечатайте, например, HTML-код: 75% Текст: 25% только по причинам SEO.

Ответы [ 2 ]

4 голосов
/ 07 марта 2012

Используйте HTML :: TreeBuilder, чтобы вырезать текст.

#!/usr/bin/perl

use strict;
use warnings;
use v5.10;

use LWP::Simple;
use HTML::TreeBuilder;

my $content = get(shift @ARGV);
die "Couldn't get it!" unless defined $content;

my $text = HTML::TreeBuilder->new_from_content($content)->as_text;

my $html_size = length $content;
my $text_size = length $text;
my $percentage = 100 * ( $text_size / $html_size );

say qq[$percentage%];
0 голосов
/ 07 марта 2012

Хм ... быстро соображая ... Как насчет:

my $htmllength = 0;
my $textlength = 0;
while(<>) {
    s/(<[^>]*>)/$htmllength += length($1); "";/eg;
    $textlength += length($_);
}

print "HTML Code: " . (100 * $htmllength / ($htmllength + $textlength)) . "\n";
print "Text     : " . (100 * $textlength / ($htmllength + $textlength)) . "\n";

Затем вы можете просто запустить скрипт для файла (ов):

perl SCRIPT file1.html file2.html

ПРИМЕЧАНИЕ: это не будет работать, если ваши данные содержат какие-либо поля CDATA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...