XML::LibXML обрабатывает символы, закодированные в gbk
Следующий скрипт на Perl работает. Однако если содержимое HTML содержит символы, основанные на gbk, они не смогут извлечь URL-адреса.
Например, этот сайт " http://list.jd.com/6196-6198-6209-0-0-0-0-0-0-0-1-3-1-1-1-72-4137-0.html"имеет несколько символов gbk.
Любые идеи о том, как заставить это работать для всех сайтов? Благодарю.
use XML::LibXML;
use AnyEvent::HTTP;
$cv = AnyEvent->condvar;
http_get("http://www.yahoo.com", sub {
printf("resp %d bytes\n", length($_[0]));
myparse($_[0]);
});
$cv->recv;
sub myparse {
my $parser = XML::LibXML->new(recover => 2);
my $doc = $parser->load_html(string => $_[0]);
for $e ( $doc->findnodes('//a/@href')->get_nodelist ) {
print $e->getValue(), "\n";
}
}