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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LWP работа через прокси, как отпустить тормоза :) 
V
    Опции темы
burakov
Дата 16.12.2011, 20:43 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Добрый день
подключаю прокси
вот так

$lwp -> proxy ('http', 'http://127.0.0.1:8080'); #подставляются разные внешние прокси

меняю адрес прокси перед каждым запросом GET
по некоторым всем понятным причинам smile (грабер)

при этом 
вытормаживает так,
что машинка
3000 Мгц 512 ОЗУ 
тянет только одну копию грабера (4потока)

Вопрос.
почему так жрет ресурсы?
может можно как то оптимизировать установку этого прокси?
но условия такие же - менять на каждом GET запросе 

у кого есть опыт... помогите.


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
Pfailed
Дата 16.12.2011, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что такое "вытормаживает"?  smile 


--------------------
PM MAIL   Вверх
burakov
Дата 16.12.2011, 21:49 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ну это значит сильная загрузка процессора,
машинка 1000 Мгц 3*128 Озу
просто не справляется работать не возможно

а напрямую БЕЗ прокси все ок -  летает


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
FishHunter
Дата 16.12.2011, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А что за прокси? Может стоит формировать список оных внешним скриптиком, проверяя скажем раз в 5 минут? + хз как вы там делаете, я так понял нужен обычный грабер html страниц? Если да то вот процедурка:
Код

sub GetHtml {
 my $url=$_[0];
 my $ref=$_[1];
 my $proxy=$_[2];
 my $browser = LWP::UserAgent->new;
    $browser->agent('Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt\)');
    $browser->timeout(30);
    $browser->proxy("http","http://$proxy"); # сюда ставить прокси как хочется
    $browser->cookie_jar( HTTP::Cookies->new(
             'file' => 'путь где куки хранить/cookies.lwp', 
             'autosave' => 1, 
             ));
 my $req = HTTP::Request->new(GET=>$url);
    $req->header('Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*');
    $req->header("Accept-Language" => "en-US");
    $req->header("Referer" => "$ref");
 my $resp = new HTTP::Response;
    $resp = $browser->request($req);
 my $cont = $resp->content;
 my $code = $resp->code;
 my $message=$resp->message;
 if ($resp->is_success()) {return $cont;} else {return "$code - $message";}
}


т.е. обращаемся к процедуре так GetHtml($url,$ref,$proxy);  и соответсвенно $proxy берем из исходного списка скажем случайно smile - на выходе html код $url, если конечно он живой.
ЗЫ да модули нужно подключить:
use LWP::UserAgent;
use HTTP::Cookies;

Добавлено через 13 минут и 53 секунды
ЗЫЫ Я тут подумал на нетрезвую голову smile а может дело не в проксях а в "потоках", точнее в их организации, хотя ... всего 4 ...

Это сообщение отредактировал(а) FishHunter - 16.12.2011, 23:50
PM MAIL   Вверх
burakov
Дата 17.12.2011, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В том то и дело
что в Вашем случае
даже больше тормозить должно
(прокси и тоже готовые из списка беру)


поскольку Вы каждый раз экземпляр броузера создаете

я LWP один раз создаю
а потом только прокси меняю
и все равно пипец тормозит...

конечно "тормозит" величина сложно описываемая, но к примеру
машина, где все работает
3000 Мгц 512 ОЗУ

всего 4 потока выставил
ну блин притормаживает  - то есть комфортно себя чувствуют только грабер 
параллельно работать сложно...

вот я и спрашиваю - впечатления - у кого как?
может это и нормально...?
но если прокси так не менять на каждом запросе - то летает очень быстро.

а вот такая команда
$browser->proxy("http","http://$proxy")
что то переделывает в экземпляре броузера и я так понимаю в этом момент и загрузка проца идет сильная.

версия перл
ActivePerl-5.12.0.1200-MSWin32-x86-292396.msi
версия LWP последняя с cpan.org

поделитесь как быстро все должно работать?




--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
Pilat66
Дата 31.12.2011, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ошибки ищутся показом кода скрипта, а не какими-то странными сообщениями о торможении 4-х потоков постоянно сменяющихся прокси.
PM MAIL   Вверх
burakov
Дата 6.1.2012, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо, всем, кто откликнулся.

проблема решена - она была не в lwp->proxy
немного помучался и выяснил, что тормозила БД
поскольку объем вырос до 1000000 записей.
пришлось переписать грабер, чтобы в sql запросах where = было по индексированному столбцу
как только код был переписан - тормоза пропали.
хотел все это обмануть путем переделки my.cnf (my.ini) От Mysql под более "мощную" машину,
но этот путь к положительному результату не привел.
пришлось оптимизировать код грабера.

еще раз всем спасибо.
тему ззакрываю.




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


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

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


 




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


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

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