Получение другого исходного кода для того же URL - PullRequest
1 голос
/ 13 октября 2019

Я пытаюсь получить заголовок со страницы новостей Washington Post в Интернете с помощью простого сценария Perl:

#! /usr/bin/env perl

use strict;
use warnings;
use LWP::Simple;
use Web::Scraper;

my $url = 'https://www.washingtonpost.com/outlook/why-trump-is-flirting-with-abandoning-fox-news-for-one-america/2019/10/11/785fa156-eba4-11e9-85c0-85a098e47b37_story.html';
my  $scraper = scraper{
        process '//h1[@data-qa="headline"]', 'headline' => 'TEXT',
      };


my $html = get($url);
print $html;
my $res = $scraper->scrape ($html);

Проблема, с которой я столкнулся, заключается в том, что она работает только примерно на 1/2времени даже при получении одного и того же URL. Исходный код, который возвращается, имеет совершенно другой формат, чем в других случаях.

Возможно, это мера против взлома для неизвестных агентов? Я не уверен, но кажется, что это никогда не должно работать вообще, если бы это было так.

Есть ли простой обходной путь, который я мог бы использовать, например, принимать куки?

1 Ответ

0 голосов
/ 13 октября 2019

Изменено $scraper на следующее, чтобы заставить его работать с другим исходным кодом:

my $scraper = scraper {
        process '//h1[@data-qa="headline"]', 'headline' => 'TEXT',
        process '//h1[@itemprop="headline"]', 'headline2' => 'TEXT',
};

Будет заполнено либо headline, либо headline.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...