мы используем Perl и cpan Modul FeedPP для разбора RSS-каналов.
Скрипт Perl запускается через различные элементы RSS-каналов и сохраняет ссылку на базу данных, например его:
my $response = $ua->get($url);
if ($response->is_success) {
my $feed = XML::FeedPP->new( $response->content, -type => 'string' );
foreach my $item ( $feed->get_item() ) {
my $link = $item->link();
[...]
$url
содержит URL-адрес RSS-канала, например http://my.domain/RSS/feeds.xml
в этом случае $item->link()
будет содержать ссылки на статью RSS, например http://my.domain/topic/myarticle.html
Проблема в том, что некоторые веб-серверы (которые предоставляют RSS-каналы) делают HTTP-ссылку для добавления идентификатора сеанса к URL-адресу, например: http://my.domain/RSS/feeds.xml;jsessionid=4C989B1DB91D706C3E46B6E30427D5CD
.
Странно думать, что feedPP швы, чтобы добавить этот идентификатор сеанса к ссылке каждого элемента. Так что $item->link()
содержит ссылки на статью RSS, например http://my.domain/topic/myarticle.html;jsessionid=4C989B1DB91D706C3E46B6E30427D5CD
Даже если исходная ссылка не содержит идентификатора сеанса.
Есть ли способ отключить такое поведение feedPP ??
Спасибо за любую помощь.