[Moscow.pm] Content-Length of Webpage

Илья Винокуров ilvin на mail.ru
Пн Окт 28 13:33:39 PDT 2013



Тогда, Батенька, IO::Socket вам в помощь...


С почтением,
  Илья Винокуров

Понедельник, 28 октября 2013, 17:17 +02:00 от "Alessandro Gorohovski" <an.gorohovski на gmail.com>:
>Алексей Александров < 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 mailing list
>moscow-pm на pm.org |  http://moscow.pm.org


-- 
Илья Винокуров
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20131029/d16fd353/attachment.html>


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