Perl WWW :: Mechanize из строковой переменной - PullRequest
0 голосов
/ 12 марта 2012

В Perl, используя модуль WWW::Mechanize (обязательный, а не другой модуль), можно ли "анализировать" документ из строковой переменной вместо url?

Я имею в виду вместо этогоиз

       $mech->get($url);

сделать что-то вроде

       $html = '<html...';
       $mech->???($html);

Возможно?

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Вы можете записать данные на диск и затем получить () их обычным способом. Примерно так:

#!/usr/bin/env perl

use strict;
use warnings;

use File::Temp;
use URI::File;
use WWW::Mechanize;

my $data = '<html><body>foo</body></html>';

# write the data to disk
my $fh = File::Temp->new;
print $fh $data;
$fh->close;

my $mech = WWW::Mechanize->new;
$mech->get( URI::file->new( $fh->filename ) );

print $mech->content;

отпечатков: foo

1 голос
/ 13 марта 2012

Понял:

          $mech->get(0);
          $mech->update_html('<html>...</html>');

Работает!

0 голосов
/ 12 марта 2012

Не совсем. Вы можете попробовать получить объект HTTP::Response, используя $mech->response, а затем использовать метод content этого объекта, чтобы заменить содержимое вашей собственной строкой. Но вам также придется настроить все заголовки сообщений, и это будет довольно грязно.

Что вы хотите сделать? Методы типа forms и images, предоставляемые WWW::Mechanize, основаны на других модулях и довольно просты для кодирования.

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