| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Многопоточная проверка доменов |
| Автор: djusha 5.5.2011, 19:00 | ||
| Необходимо проверить большое количество доменов по очереди на разных сайтах . То-есть из файла берем домен, в несколько потоков проверяем сначала на одном сайте... обрабатываем результаты проверки... ненужные домены отсеиваем, Проверяем на другом сайте... снова обрабатываем, ненужные домены отсеиваем... и так несколько раз Все это усложняется тем, что необходимо проверять через список прокси или с использованием нескольких IP адресов сервера ... один прокси \ IP адрес на один один поток Как посылать запросы с конкретного IP или прокси... тут написано http://www.s3blog.org/lwp-socks.html, про многопоточность... вроде Coro http://forum.vingrad.ru/forum/topic-317827/unread-1/hl/anyevent/index.html Или AnyEvent::HTTP::LWP::UserAgent - http://search.cpan.org/~tadam/AnyEvent-HTTP-LWP-UserAgent-0.07/lib/AnyEvent/HTTP/LWP/UserAgent.pm без многопоточности и без списка прокси \ IP все прекрасно работает, но с многопоточностью и списком проксей \ IP ... пардонте...ума никак не хватает все в кучу собрать Как вставить в подпрограмму порцию УРЛ и прокси или IP... Как принять результат для каждого УРЛ... Вот пример с однопоточным вариантом ниже. подпрограммы checkOneSite и checkSecondSite проверяют домены с использованием LWP::UserAgent, тут все нормально и понятно Не хватает ума собрать все в кучу с многопоточностью и списками прокси \ IP
|
| Автор: mishnik 5.5.2011, 22:21 |
| djusha, поставьте squid для каждого урла можно настроить свой прокси и логин/пароль |
| Автор: EcSYZ 6.5.2011, 21:00 | ||
Вот примерно так под AnyEvent будет. С проксями ничего думаю не подскажу, ибо с ними не заморачивался.
|
| Автор: djusha 7.5.2011, 07:21 |
| Спасибо! с гор приеду после праздников, поразбираюсь... |
| Автор: djusha 10.5.2011, 12:45 | ||
не сразу, но заработало... не была закрыта скобка http_request кроме того, после проверки скрипт висит... не завершается... и хотелось бы понять, как задать количество одновременных потоков... допустим хотелось бы чтобы скрипт обрабатывал по 10 доменов... ну и в идеале, хотелось бы реализовать каждый поток на свой IP... спасибо заранее! |
| Автор: EcSYZ 10.5.2011, 18:20 | ||
Сори, скрипт я набросал прямо тут на форуме, так что не проверял на работоспособность. Вообщем я хотел передать суть идеи
Вот примерно так. &cycle_run занимается стартом запросов и их отловом, а &run чисто за запросы отвечает и действия с ними. В &cycle_run 2 цикла - while отвечает за перебор всех ссылок, а for - за создание запросов пачками по N штук. |
| Автор: djusha 11.5.2011, 06:28 |
| Спасибо! Будет над чем сегодня подумать! |