Perl Нужна помощь!

Тема в разделе "Perl, Python, Ruby", создана пользователем lucia, 18 июн 2012.

  1. lucia

    lucia Постоялец

    Регистр.:
    13 окт 2009
    Сообщения:
    131
    Симпатии:
    16
    Скрипт парсит RSS по заданному урл,подскажите как можно сделать так чтоб скрипт выбирал ссылки из файла .txt по списку,и ещё если возможно как-то игнарировал ошибки ......типа нет доступа к сайту.

    Вот сам скрипт,в скрипте только исправил кодировку с utf8 на windows1251

    #!/usr/bin/perl

    use LWP::Simple;
    use XML::RSS;
    use HTML::Strip;

    binmode(STDOUT, ":windows1251");

    #my $url = "Перейти по ссылке";
    my $url = "Перейти по ссылке";

    $hs = HTML::Strip->new();

    my $rss = XML::RSS->new();
    my $data = get( $url );
    $rss->parse( $data );

    my $channel = $rss->{channel};
    #my $title = $channel->{title};
    #my $link = $channel->{link};
    #my $desc = $channel->{description};

    foreach my $item ( @{ $rss->{items} } )
    {
    my $link = $item->{link};
    my $title = $item->{title};
    my $desc = $item->{description};

    print $title, "\n", $hs->parse($desc), "\n\n\n";
    }

    $hs->eof;
     
  2. KMiNT21

    KMiNT21 Создатель

    Регистр.:
    28 апр 2012
    Сообщения:
    20
    Симпатии:
    4
    Если действительно подразумевалось просто подсказать, а не написать скрипт, то вот как на перле делается циклическое считывание из файла:
    Перейти по ссылке

    А вышеуказанный код переделывается в функцию, которую из цикла чтения надо вызывать - Перейти по ссылке (с параметром url)
     
  3. lucia

    lucia Постоялец

    Регистр.:
    13 окт 2009
    Сообщения:
    131
    Симпатии:
    16
    В перле не кумекаю,постараюсь понять потестировать...может что получится.

    Не получается,может кто помочь......на изучение нет времени.
     
  4. motzmo

    motzmo Создатель

    Регистр.:
    20 июн 2007
    Сообщения:
    43
    Симпатии:
    16
    Код:
    #!/usr/bin/perl
     
    use LWP::Simple;
    use XML::RSS;
    use HTML::Strip;
     
    binmode(STDOUT, ":windows1251");
     
    my $file_urls = "links.txt";
     
    open myfile, '<'.$file_urls or die("$file_urls not found\n");
    while(<myfile>)
    {
    s/[\r\n]+//g;
     
        my $hs = HTML::Strip->new();
     
        my $rss = XML::RSS->new();
        my $data = get( $_ );
        $rss->parse( $data );
     
        my $channel = $rss->{channel};
        #my $title = $channel->{title};
        #my $link = $channel->{link};
        #my $desc = $channel->{description};
     
        foreach my $item ( @{ $rss->{items} } )
        {
        my $link = $item->{link};
        my $title = $item->{title};
        my $desc = $item->{description};
     
        print $title, "\n", $hs->parse($desc), "\n\n\n";
        }
     
        $hs->eof;
     
    }
    close myfile;
    
    файл links.txt