Я полный новичок во всем этом, но некоторое время назад я написал небольшой скрипт на Perl для синтаксического анализа RSS-канала. Начинается это так:
use strict;
use XML::RSS::Parser;
use Data::Dumper;
my $url = "http://www.livenation.co.uk/Venue/159/Southampton-Guildhall-tickets/RSS";
my $parser = XML::RSS::Parser->new();
my $feed = $parser->parse_uri($url);
print Dumper( $feed );
print $parser->errstr();
Раньше он работал (не могу вспомнить, когда я последний раз проверял его, но несколько недель назад он, похоже, работал), но сегодня это больше не работает. RSS-канал активен и проходит через feedvalidator.org. errstr()
возвращает это:
End tag mismatch (title != description) [Ln: 67, Col: 95]
Я не совсем понимаю, как это произошло и что это значит. Источник RSS гласит:
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
Не знаю, было ли раньше иначе. Я пробовал несколько других каналов атома, и парсер, кажется, не работает на всех из них. Проблема в том, что системный администратор возвращается только после истечения крайнего срока, поэтому я должен использовать то, что доступно.
ОБНОВИТЬ:
интересный. он ломается как при установке w7 64 * active perl), так и при установке ubuntu (32, 9.10). отлично работает на Ubuntu моего друга (то же самое, 9.10). Я попытался переустановить модули, но это ничего не меняет.