LWP :: Simple довольно прост и не позволяет вам делать что-то умное, например, смотреть детали ответа. Итак, давайте изменим на LWP :: UserAgent и посмотрим, что ответит.
use LWP::UserAgent;
my $url = 'https://www.dividendinvestor.com/dividend-quote/intc/';
my $ua = LWP::UserAgent->new;
my $resp = $ua->get($url);
print $resp->status_line;
Это напечатает:
403 Запрещено
Так что я думаю, что комментарий Квентина правильный и что владельцы сайта блокируют людей, использующих такие технологии, как LWP.
Итак, давайте изменим строку useragent, чтобы она выглядела как Internet Explorer.
use LWP::UserAgent;
my $agent = ' Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko';
my $url = 'https://www.dividendinvestor.com/dividend-quote/intc/';
my $ua = LWP::UserAgent->new;
$ua->agent($agent);
my $resp = $ua->get($url);
print $resp->status_line;
Теперь я получаю:
200 ОК
Так что мы должны быть в порядке, чтобы получить контент.
use LWP::UserAgent;
my $agent = ' Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) like Gecko';
my $url = 'https://www.dividendinvestor.com/dividend-quote/intc/';
my $ua = LWP::UserAgent->new;
$ua->agent($agent);
my $resp = $ua->get($url);
if ($resp->is_success) {
print $resp->content;
} else {
print $resp->status_line;
}
И это похоже на работухорошо.
Примечание: Конечно, изменение строки useragent, как это, довольно нечестно. Предположительно, владельцы сайта имеют веские основания желать отговорить людей от доступа к своему сайту таким способом. Так что не раздражайте их, пытаясь обойти их ограничения. Прочитайте условия обслуживания сайта, чтобы увидеть, что они хотят делать. Возможно, у них есть API, который предоставит вам необходимые данные.