[Moscow.pm] Content-Length of Webpage

Mons Anderson mons на cpan.org
Сб Окт 26 15:30:14 PDT 2013


On 26.10.2013, at 23:58, Alessandro Gorohovski <an.gorohovski на gmail.com> wrote:

> Уважаемое сообщество,
> Добрый вечер!
> 
> Подскажите,
> можно ли надежно и как определить размер (объем)
> предполагаемого к скачиванию контента
> (например, html-страницы) без загрузки всей страницы.
> 
> 
> Я сейчас пользуюсь
> 
> my $agent = LWP::UserAgent->new;
> 
> my $request = HTTP::Request->new( GET => $url );
> $request->header('Accept' => 'text/html');
> 
> my $response = $agent->request( $request );

В этом месте вы уже получили весь ответ целиком.

> $response->is_success || print FILE_ERR "$id\t$url:\t", $response->message, "\n";
> 
> И далее парсим
> $response->headers_as_string
> 
> на предмет 'Content-Length'
> 
> Но, к сожалению удручает то, что не всегда заголовок скачиваемой страницы
> содержит поле  'Content-Length'
> :(
> 


Если content-length нет, то значит там ответ transfer-encoding: chunked.
а это, в свою очередь, означает, то вы не можете заранее узнать какой длины будет ответ, пока не считаете его целиком.




Подробная информация о списке рассылки Moscow-pm