perl - не может получить данные, используя строку m // g - PullRequest
0 голосов
/ 25 апреля 2018

Я использую это, но я ничего не получаю

    my $maldet = "https://myanimelist.net/anime/35849/Darling_in_the_FranXX";
my $response = $ua->request(HTTP::Request->new(GET => $maldet));
my $rrs = $response->content;
while ($rrs =~ m/<span itemprop=\"name\">(.*?)<\/span>/g) {
my $ANIME_NAME = $1;
print item("ANIME NAME"),("$ANIME_NAME\n");
}

этот оригинальный исходный код, и я хочу получить ДАННЫЕ

<span itemprop="name">DATA</span>

пожалуйста, помогите, что мне нужноредактировать в моем сценарии

1 Ответ

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

Сделайте себе одолжение и не анализируйте HTML с регулярными выражениями . Хотя в Perl есть несколько модулей для правильного разбора HTML (например, HTML::Parser и HTML::TreeBuilder - это две классики), Mojo::DOM имеет приятный интерфейс и может использоваться вместе с Mojo::UserAgent:

use warnings;
use strict;
use Mojo::UserAgent;

my $LINK = "test.html";
my $ua = Mojo::UserAgent->new;
my $dom = $ua->get("https://www.example.com/$LINK")->result->dom;
$dom->find(q{ span[itemprop="name"] })->each(sub {
        my $text = $_->text;
        print "<$text>\n";
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...