Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Прошу помочь со скриптом  (Прочитано 14367 раз)
0 Пользователей и 1 Гость смотрят эту тему.
samlab
Гость
« : 28-08-2010 14:54 » 

Код:
#!/usr/bin/perl -w

$| = 1;

use LWP::UserAgent;
use LWP::ConnCache;

use threads ('yield',
'stack_size' => 8*4096,
'exit' => 'threads_only',
'stringify');

my $threads = 5;

open(F,"< proxy.txt");

@f=<F>;

chomp(@f);

close(F);

threads->new(\&main) for 1 .. $threads;

$_->join for threads->list;

sub main

{

$i = 1;

while ($i<3) {

$ip = splice(@f, int rand @f, 1);

my $ua = LWP::UserAgent->new;
$ua->conn_cache(LWP::ConnCache->new());
$ua->agent('Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)');
$ua->timeout(10);
$ua->proxy('http' => "http://$ip");
$ua->default_header('Accept-Encoding' => "gzip, deflate");
$ua->default_header('Accept-Language' => "ru");
$ua->default_header('Referer' => "http://yandex.ru//");
$ua->default_header('Accept' => "*/*");
$ua->default_header('Accept-Charset' => "windows-1251");

$response = $ua->get('http://google.ru/);

sleep (60);

redo;

++$i;
}
}
Вот какая проблема терзает мой разум. В коде, что приведен выше, парсера, прокси выбираются из списка рандомно. Т.е., если в списке штук 5 прокси, то велика вероятность того, что один и тот же прокси будет использован несколько раз. А хочется вот как, чтобы прокси выбирались из списка по порядку, сначала первый, потом второй, потом третий и в конце скрипт завершает работу.
Думаю сделать вот как, присвоить переменной значение 1, потом с каждый разом увеличивать это значение, но реализовать как-то не получается, прошу помочь безголовому С ума сойти...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 28-08-2010 15:31 » new

расскажи про функцию splice
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #2 : 28-08-2010 19:29 » 

Скрипты языка Perl используют функцию splice для того, чтобы извлекать элементы из списка, заменяя их элементами другого списка.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 28-08-2010 19:38 » 

samlab, не.... дорогой, я знаю что делает функция splice
А знаешь ли ты?

Ты в нее предаешь параметры, и что-то хочешь получить
так вот расскажи, что ты получаешь?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #4 : 28-08-2010 19:49 » 

samlab, не.... дорогой, я знаю что делает функция splice
А знаешь ли ты?

Ты в нее предаешь параметры, и что-то хочешь получить
так вот расскажи, что ты получаешь?
Получаю указанное число элементов из массива, начиная с величины сдвига, если она указана. Если в вызове не указан параметр сдвига, функция извлекает элементы до самого конца массива. Если в вызове функции не указан список, элементами которого замещаются исходные элементы, то функция не добавляет никаких элементов к первоначальному списку.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 28-08-2010 20:06 » 

samlab, замечательно!

Получаю указанное число элементов из массива,

Из какого массива?


начиная с величины сдвига
Какая величина сдвига?


Получаю указанное число

Сколько?

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #6 : 28-08-2010 20:28 » 

samlab, замечательно!

Получаю указанное число элементов из массива,

Из какого массива?


начиная с величины сдвига
Какая величина сдвига?


Получаю указанное число

Сколько?


Очевидно, что из массива, который указывается, величина сдвига задается, указанное число, видимо, тоже задается.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 28-08-2010 20:56 » 

samlab, ты мне на своем примере покажи и расскажи
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #8 : 28-08-2010 21:05 » 

Если бы я мог применительно к своему примеру это сделать, я бы не компастировал тут мозги вам... Меня одолевают смутные сомнения
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 29-08-2010 08:06 » 

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

Мы все учились понемногу... Чему-нибудь и как-нибудь.
samlab
Гость
« Ответ #10 : 29-08-2010 16:38 » 

samlab, т.е. ты считаешь, что мы должны сделать за тебя твою работу?
Я тебе подвел к тому месту, где тебе нужно было всего лишь разобраться, а ты под носом не увидел.
ВЫ правы, что то я совсем забываться стал, простите меня пожалуйста, больше такого неслыханного наглежа не повторится!
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 29-08-2010 16:54 » 

samlab, давай так...
если это у тебя одноразовая задача, и больше ты ни-ни в перл, то я за такое взял бы денег (но это не мой принцип)

Если будут задачи подобного типа и часто, а судя по тому, что ты установил perl на виндовую машину, это будет часто и много и с каждым разом более масштабно, то давай отвечай на поставленные вопросы и читай документацию и книжки.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 29-08-2010 17:28 » 

Поддерживаю Славу: если уж пользоваться, то надо изучать.

Мне нравится Перл и я с удовольствием отвечаю, в меру своих знаний, на любые вопросы. Но подход "нате, разбирайтесь, чего тут не работает" терпеть ненавижу. Отвечающим должно быть интересно - мы ведь не на работе и ничем не обязаны вопрошающему.

Т.ч., samlab, большая просьба: относится к наводящим и уточняющим вопросам внимательно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines