[Moscow.pm] Content-Length of Webpage

Alessandro Gorohovski an.gorohovski на gmail.com
Пн Окт 28 08:17:51 PDT 2013


Алексей Александров <alexeyaleksandrov на gmail.com> писал(а) в своём письме  
Mon, 28 Oct 2013 16:24:27 +0200:

> | А может существует способ при котором можно было бы управлять  
> количество
> | байт скачиваемого контента,
>
> Можно так сделать  LWP::UserAgent->max_size($bytes)
> "Get/set the size limit for response content."

Пробовал в первую очередь.
Нет, это вообще --- ерунда и
правильно, надежно не работает.

> 27 октября 2013 г., 11:44 пользователь Alessandro Gorohovski <
> an.gorohovski на gmail.com> написал:
>
>> Mons Anderson <mons на cpan.org> писал(а) в своём письме Sun, 27 Oct 2013
>> 01:30:14 +0300:
>>
>>
>>  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.
>>> а это, в свою очередь, означает, то вы не можете заранее узнать какой
>>> длины будет ответ, пока не считаете его целиком.
>>>
>>
>> Печально.
>> А может существует способ при котором можно было бы управлять количество
>> байт скачиваемого контента, например, загрузив не более 20 kb,  
>> прекращать
>> прием данных
>> (разорвать соединение принудительно)
>> ?
>>
>> --
>> ANG
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>
>
>


-- 
ANG


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