Итак, я использую WWW :: Mechanize, чтобы получить содержимое страниц, и я бы хотел установить максимальный размер. Кроме того, если достигнут максимальный размер, я хотел бы получить контент, который был получен до этого момента. Я знаю, что в LWP вы можете сделать это следующим образом:perl WWW :: Механизировать заданный максимальный размер и все еще получать контент
my $ua = LWP::UserAgent->new;
$ua->max_size(1024);
$ua->get($url);
И теперь в этот момент, даже если 1024 байт были достигнуты, $ua->content
будет по-прежнему держать читаемый контент, который не получил до этого момента. WWW :: Mechanize подкласс LWP, так что вы можете настроить его в основном точно так же:
my $mech = WWW::Mechanize->new;
$mech->max_size(1024);
$mech->get($url);
И тогда вы могли бы подумать, что с WWW :: Mechanize подкласс LWP :: UserAgent, $mech->content
будет содержать содержимое, которое было восстановлено до тех пор, пока размер не достигнет 1024 байта. Тем не менее, всякий раз, когда я запускаю это и достигают максимального размера, я получаю содержание от моего WWW :: Механизируйте объект, который выглядит следующим образом:
?|???-???+"?O<?p}?,?ܙmW ?`E??\\ސ???ѧ??U{3???
Кто-нибудь знает, как я могу получить WWW :: Mechanize на самом деле что-то выходной читаемый как его суперкласс LWP :: UserAgent делает? Мне нравятся некоторые дополнительные функции, которые предоставляет WWW :: Mechanize, поэтому я хотел бы иметь возможность использовать это, если все возможно, а не переключиться на LWP только для этого. Благодаря!
Вы читаете GZIP сжатый или вход позволяет серверу посылать сжатую ввод? – mob
Возможный дубликат http://stackoverflow.com/questions/10989684/lwp-set-max-size-but-still-get-content? – dgw
это не дубликат, потому что это спрашивает, как это сделать с помощью WWW :: Mechanize. – srchulo