Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос про unpack и LWP::UserAgent 
:(
    Опции темы
djusha
Дата 22.2.2011, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 11.6.2008

Репутация: нет
Всего: нет




Код

$content = unpack("x68 A500",$response->content); 


пропускает 68 символов и берет 500 символов

Код

$ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0"); # pretend we are very capable browser
$ua->timeout(145);
$response = $ua->get( "http://www.lalalalala.com"); 
$content = unpack("x68 A500",$response->content); # x68 A500 - пропустить 68 символов, прочитать 500



не могу догнать.... если мы скачиваем страницу таким образом: $content = unpack("x68 A500",$response->content), то все равно скачивается вся страница келиком, или только кусок x68 A500?

были мысли ускорить процесс скачивания, потому что нужное место находится в пределах x68 A500... или это все от лукавого, и качается вся страница по любому, а только кусок попадает в $content?

Это сообщение отредактировал(а) djusha - 22.2.2011, 21:30
PM WWW   Вверх
Jimy
Дата 22.2.2011, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



Цитата

Код

$content = unpack("x68 A500",$response->content);


Это что за магия? Может попробовать "дедовским" методом:
Код

$content = substr($response->content, 68, 500);

PM   Вверх
Jimy
Дата 22.2.2011, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 4.7.2010

Репутация: нет
Всего: 3



По существу вопроса.
unpack не скачивает ничего. На момент его вызова, ответ от сервера (разумеется, вместе с полным содержимым страницы) уже содержится в $response.
PM   Вверх
djusha
Дата 23.2.2011, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 11.6.2008

Репутация: нет
Всего: нет



1. гдето читал, unpack работает быстрее чем substr
2. спасибо. 


PM WWW   Вверх
Pfailed
Дата 23.2.2011, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



В HTTP есть для этого специальное средство, кажется это называется byte ranges. Но на большинстве серверов это работает только на отдачу статических файлов, с динамически генерируемыми страницами работать не будет.
В LWP это можно сделать так
Код

$ua->get($url, Range => 'bytes=500-')



--------------------
PM MAIL   Вверх
djusha
Дата 23.2.2011, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 11.6.2008

Репутация: нет
Всего: нет



Цитата(Pfailed @ 23.2.2011,  08:47)
В HTTP есть для этого специальное средство, кажется это называется byte ranges. Но на большинстве серверов это работает только на отдачу статических файлов, с динамически генерируемыми страницами работать не будет.
В LWP это можно сделать так
Код

$ua->get($url, Range => 'bytes=500-')

Хммм... в доке по ЛВП не нашел этого... пороюсь в коде модуля...

Спасибо!
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.