Как мне извлечь и проанализировать HTML с Perl? - PullRequest
0 голосов
/ 22 мая 2010

Как мне сделать следующее в Perl по порядку: а) свернуть страницу и сохранить ее в переменной б) проанализировать значение переменной (которая является содержимым HTML) для значений, которые я хочу (например: информация хранится между тегами, как ...)

1 Ответ

2 голосов
/ 22 мая 2010

Мой perl kung-fu ржавый, но я думаю, что это что-то вроде следующего:

Чтобы извлечь что-то с помощью curl, а затем извлечь, например, содержимое некоторого html-элемента:

use WWW::Curl::Easy;
my $curl = new WWW::Curl::Easy;
$curl->setopt(CURLOPT_URL, 'http://www.example.com/some-url.html');
open (my $fileb, ">", \$response_body);
$curl->setopt(CURLOPT_WRITEDATA, $fileb);
$curl->perform;
my $info = $curl->getinfo(CURLINFO_HTTP_CODE);

$response_body =~ m|<a[^>]+>(.+?)</a>|;

Теперь $ 1 должен содержать содержимое элемента A.Если этого не произойдет, будет сказано, что $ 1 не определено или что-то подобное.Вы должны сначала проверить в $ info, конечно, что код состояния соответствует ожидаемому.Это Perl-код, это ужасно, но это работает.Тем не менее, я рекомендую делать это не часто (и особенно не в больших сценариях), поскольку это, безусловно, самый быстрый путь к стрельбе себе в ногу с помощью Perl:

Вы стреляете в себяноги, но никто не может понять, как ты это сделал.Шесть месяцев спустя вы тоже не можете.

Я надеюсь, что это поможет.

PS Я уверен, что есть какой-то более легкий путь, без такого большого количества кода, но я не могупомни как дела ...

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