perl - ошибка разбора с использованием составного скрипта - PullRequest
0 голосов
/ 25 апреля 2018

Когда я использую этот скрипт, он работает нормально, я использую HTML :: TreeBuilder для анализа html с сайта

#!/usr/bin/perl -w
use LWP::Simple;
use HTML::TreeBuilder;

use open ':std', ':encoding(UTF-8)';
my $base='https://myanimelist.net';
my $url="/anime/35849/Darling_in_the_FranXX";
my $page = get($base.$url) or die $!;
my $p = HTML::TreeBuilder->new_from_content( $page );

my @trips= $p->look_down(_tag=>'span',itemprop=>'description')->as_text;
foreach my $trip (@trips){
   print $trip;
}

, но когда я добавляю его в этот скрипт, он не работает

#!/usr/bin/perl -w
use LWP::Simple;
use HTML::TreeBuilder;
my $ua = LWP::UserAgent->new();


my $mal = "https://myanimelist.net/search/all?q=darling";
my $response = $ua->request(HTTP::Request->new(GET => $mal));
my $rrs = $response->content;
while ($rrs =~ m/href=\"https:\/\/myanimelist.net\/anime\/(.*?)\" class=\"hoverinfo_trigger fw-b fl-l\"/g){
my $link = $1;
if ( $link !~ /video|season?_location=mal_h_m/ ) {
print ("https://myanimelist.net/$link\n");

use open ':std', ':encoding(UTF-8)';
my $base='https://myanimelist.net';
$fullink = "$link";
my $page = get($base.$fullink) or die $!;
my $p = HTML::TreeBuilder->new_from_content( $page );

my @trips= $p->look_down(_tag=>'span',itemprop=>'description')->as_text;
foreach my $trip (@trips){
   print $trip;
}
}
}

и я получаю этот код ошибки:

Invalid argument at name.pl line 19.

есть ли способ это исправить?

1 Ответ

0 голосов
/ 25 апреля 2018

Здесь есть проблема.Похоже, вам не хватает аниме:

my $page = get($base.$fullink) or die $!;

Попробуйте заменить его на:

my $url = $base.'/anime/'.$fullink;
my $page = get($url) or die $!;

Или заменить:

my $base='https://myanimelist.net';

на

my $base='https://myanimelist.net/anime/';
...