URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3410
[ Назад ]

Исходное сообщение
"Парсинг RSS на perl"

Отправлено Сергей Петров , 27-Июн-05 19:56 
Я написал вот такой скрипт:

#! /usr/bin/perl

use File::Basename;
use LWP::Simple qw(mirror);
use XML::RSS;
use Text::Iconv;

my $converter = Text::Iconv->new('utf8','windows-1251');

$url = "http://news.yandex.ru/internet.rss";

my $name = basename($url);
mirror($url, "$name");

my $rss = new XML::RSS;
$rss->parsefile($name);

print  "Content-type: text/html\n\n";

for (@{$rss->{items}})
{
    print "<a href='$_->{link}'>";
    print $converter->convert($_->{'title'}) . "</a><br>\n";
}

Все прекрасно работает, когда запускается из под линукса. Когда я запускаю это через браузер - то все прекрасно выдается, но не файл не обновляется ( mirror($url, "$name"); вот это не работает). поэтому когда смотришь через браузер отображаются только старые каналы.

Вопросы:
1. Почему mirror($url, "$name"); не работает, когда запускается скрипт через браузер
2. Скажите пожалуйста, может быть существует какая-нибудь возможность парсить rss не сохраняя его в качестве файла на локальной машине, а только держа в памяти?

Заранее большое спасибо!


Содержание

Сообщения в этом обсуждении
"Парсинг RSS на perl"
Отправлено Сергей Петров , 27-Июн-05 20:57 
Вроде разобрался. Делаю вот так:

my $content = get $url;
die "Couldn't get $url" unless defined $content;


my $rss = new XML::RSS;
$rss->parse($content);