Что нового

[Сеть, интернет] Несколько Web-сеансов одновременно

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Всем привет... Перекопал весь и-нет, замучал гугль и остальные поисковики... Искал-искал, но меня всегда кидало не туда куда нужно... Толи я вопрос формирую неправильно, толи что - не понятно...
В общем, мне нужна простейшая весчь: Сидеть в одном браузере под несколькими учётками на одном сайте...

Подробнее:
Создал скрипт с использованием библиотеки IE.au3, который автоматизирует некоторые действия пользователя на сайте (некая эмуляция живой активности). Нужно эмулировать эту активность /на данный момент/ у 15 (!!!) пользователей одновременно... Вся активность буквально состоит из 10 кликов и ожидания в 30 сек.

Мой скрипт при этом выполняет аццкий, никому ненужный труд, а именно:
вошел под 1й учёткой, выполнил действия, вышел, вошел под 2й учеткой, выполнил действия, вышел.... и т.д. 15 учеток...

Вопрос:
Как мне реализовать такую весчь, чтобы просто создавалось 15 окон браузера, автоматом логинились 15 этих учеток и действия выполнялись независимо друг от друга?? т.е. несколько сеансов одновременно :smile:

Покамысть обхожусь ужасно геморойным вариантом, описаным выше, только автоматизировано 10 учеток, остальные 5 - это 5 отдельно запусченных разных браузеров (Опера, Гугль хром, Гугль хром в режиме инкогнито, Макстон и К-мелеон). Браузеры запущены на виртуальной машине и автоматизированы тупо кликами по координатам мыши..

В общем ацтойное рещение использовать для простой рутины столько ресурсов системы, + очень большая нестабильность всего этого часто даёт о себе знать...

ЛЮДИ ДОБРЫЕ, ПОСОВЕТУЙТЕ ХОТЬ ЧТО-НИБУДЬ... загибаюсь по полной... :(
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,579
Репутация
335
Ввиду отсутствия многопоточности у AutoIT вижу только 1 выход из данной проблемы. Это запускать 15 копий программ с разными параметрами.

Например: Bot.exe -Login1 -Pass1
Bot.exe -Login2 -Pass2 и.т.д
Соответственно настроить сам скрипт на обработку команд
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
HukpoFuJl
А если, например, так попробовать:
Код:
#include <IE.au3>

Dim $aoIE[10]
Dim $aInput[10]
Dim $aClick[10]
For $i = 0 To 9
	$aoIE[$i] = _IECreate("http://www.google.ru/", 0)
Next
For $i = 0 To 9
	$aInput[$i] = _IEGetObjByName($aoIE[$i], "q")
	$aClick[$i] = _IEGetObjByName($aoIE[$i], "btnG")
	_IEFormElementSetValue($aInput[$i], "AutoIt" & $i)
	_IEAction($aClick[$i], "click")
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
HukpoFuJl
IMHO: Как уже было здесь сказано, вариант один, запустить несколько окон IE, и войти под 15-ю учётными записями, далее в цикле, _IEAttach к каждому окну.
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
Что-то я сомневаюсь что в ие в принципе можно войти на один сайт одновременно под несколькими учётками.
Куки то одни, сессии друг друга перезапишут. Или я чего то не знаю/понимаю?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
dwerf
Попробуйте! Я лично могу открыть в IE все свои почтовые ящики и прекрасно работать с ними!
Единственный момент, в cookie остаётся информация о последней учётной записи!
В следующий раз, если загрузиться на сайт, то автоматом откроется последняя учётная запись (если не входили принудительно).
А пока все экземпляры в памяти, то всё работает!
 
Автор
HukpoFuJl

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Medic84 сказал(а):
Ввиду отсутствия многопоточности у AutoIT вижу только 1 выход из данной проблемы. Это запускать 15 копий программ с разными параметрами.

Например: Bot.exe -Login1 -Pass1
Bot.exe -Login2 -Pass2 и.т.д
Соответственно настроить сам скрипт на обработку команд
В этом проблем нету никаких, проблема в том, что если я из одной программы войду под 1м логином - то и остальные 14 после обновления страницы будут работать под этим логином... Тут что-то с куками делать видимо надо...

madmasles сказал(а):
HukpoFuJl
А если, например, так попробовать:
Код:
#include <IE.au3>

Dim $aoIE[10]
Dim $aInput[10]
Dim $aClick[10]
For $i = 0 To 9
	$aoIE[$i] = _IECreate("http://www.google.ru/", 0)
Next
For $i = 0 To 9
	$aInput[$i] = _IEGetObjByName($aoIE[$i], "q")
	$aClick[$i] = _IEGetObjByName($aoIE[$i], "btnG")
	_IEFormElementSetValue($aInput[$i], "AutoIt" & $i)
	_IEAction($aClick[$i], "click")
Next
ААналогично... запустить несколько браузеров не проблема и ввести почти одновременно во всех что-то... проблема оставаться залогиненым на одном и томже сайте с 15ти учёток...

2 Garrett, аналогично

dwerf сказал(а):
Что-то я сомневаюсь что в ие в принципе можно войти на один сайт одновременно под несколькими учётками.
Куки то одни, сессии друг друга перезапишут. Или я чего то не знаю/понимаю?

Всё совершенно верно ты понимаешь :smile:

Garrett сказал(а):
dwerf
Попробуйте! Я лично могу открыть в IE все свои почтовые ящики и прекрасно работать с ними!
Единственный момент, в cookie остаётся информация о последней учётной записи!
В следующий раз, если загрузиться на сайт, то автоматом откроется последняя учётная запись (если не входили принудительно).
А пока все экземпляры в памяти, то всё работает!
Не пробовал и сомневаюсь что получится... страницу периодически обновлять надо.. и чувствую что в результате при обновлении все окна будут отображать последнюю вошедшую учетку...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
HukpoFuJl [?]
Не пробовал и сомневаюсь что получится... страницу периодически обновлять надо.. и чувствую что в результате при обновлении все окна будут отображать последнюю вошедшую учетку...
Дайте ТЗ и будем побывать! А так можно бесконечно обсуждать! :smile:

P.S. ТЗ - тех. задание.
 
Автор
HukpoFuJl

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Может можно как-то при открытии страницы насильно впихать ей кук?
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
HukpoFuJl сказал(а):
Может можно как-то при открытии страницы насильно впихать ей кук?
Если в ие, можно попробовать открыть файл с куки (путь не помню) и прочитать-переписать, но только врядли тогда желаемая мультипоточность получится.

Может через WinHTTP функции можно, но я с ними не знаком.

Можно сделать напрямую через TCPSend() / TCPRecv(), самому получать все данные включая куки, самому же их и посылать.

Можно через консольную программу типа wget. Конкретно во wget получаемый куки можно сохранить в любой файл, и при следующей команде загрузить оттуда.

Но в последних трёх вариантах работать придётся с сервером напрямую, без функций типа _IEAction.
 
Автор
HukpoFuJl

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Garrett сказал(а):
HukpoFuJl [?]
Не пробовал и сомневаюсь что получится... страницу периодически обновлять надо.. и чувствую что в результате при обновлении все окна будут отображать последнюю вошедшую учетку...
Дайте ТЗ и будем побывать! А так можно бесконечно обсуждать! :smile:

P.S. ТЗ - тех. задание.

Да не вопрос =)) Например взять мэйл.ру... Создать там два разных мыла и попробовать зайти на них одновременно из двух окон и периодически обновлять каждое, оставаясь в каждом окне под разными учетками...

dwerf сказал(а):
HukpoFuJl сказал(а):
Может можно как-то при открытии страницы насильно впихать ей кук?
Если в ие, можно попробовать открыть файл с куки (путь не помню) и прочитать-переписать, но только врядли тогда желаемая мультипоточность получится.
Ммм... Ну допустим если я буду открывать страницу через кук, а потом не обнавлять её, а открывать снова - то вполне может сайти за вариант... осталось узнать как это реализовать и ещё, если я таким образом буду открывать страницу - она откроется как файл, или всёже как страница и-нета? Просто на странице постоянно меняется содержание и выполняется много явы...

dwerf сказал(а):
Может через WinHTTP функции можно, но я с ними не знаком.
с винХТТП я тоже не знаком, так что хз.

dwerf сказал(а):
Можно сделать напрямую через TCPSend() / TCPRecv(), самому получать все данные включая куки, самому же их и посылать.
Так не выйдет, нужна конкретно открытая страница и на ней будут производится клики, вызывающие действия прямо на странице (яваскрипты).

dwerf сказал(а):
Можно через консольную программу типа wget. Конкретно во wget получаемый куки можно сохранить в любой файл, и при следующей команде загрузить оттуда.

Но в последних трёх вариантах работать придётся с сервером напрямую, без функций типа _IEAction.
Аналогично... _IEAction в моём случае незаменим :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
HukpoFuJl [?]
Да не вопрос =)) Например взять мэйл.ру... Создать там два разных мыла и попробовать зайти на них одновременно из двух окон и периодически обновлять каждое, оставаясь в каждом окне под разными учетками...
Вы, по-моему, не читаете форум!
Garrett [?]
Я лично могу открыть в IE все свои почтовые ящики и прекрасно работать с ними!
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
623
Garrett
mail.ru работает через куки. открыть можно несколько ящиков. но при любой попытке обновить страницу, например при принудительном обновлении или попытке перейти по ссылке рабочим станет ящик с которого зашли последним.
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
219
HukpoFuJl [?]
Ммм... Ну допустим если я буду открывать страницу через кук, а потом не обнавлять её, а открывать снова - то вполне может сайти за вариант... осталось узнать как это реализовать и ещё, если я таким образом буду открывать страницу - она откроется как файл, или всёже как страница и-нета? Просто на странице постоянно меняется содержание и выполняется много явы...

Я имел в виду следующее:
Открывается в ие сайт, проводится логин, ие при этом сохраняет имя/пароль/сессию/идентификатор пользователя в кук. Скриптом проводятся какие то действия. Потом скрипт читает идентификатор пользователя из кука и логинится под новым именем. Снова проводятся какие то действия. Скрипт читает идентификатор нового пользователя из кука и пишет идентификатор старого пользователя в кук. Снова проводятся какие то действия под первым пользователем. Так пользователей можно постоянно менять.
Проблема в том что, насколько я понял, одновременно через ие может залогиниться только один пользователь. Поэтому как не выпенривайся, останется эта пошаговость. Проще сразу всё делать под одним пользователем потом под вторым итд. как было описано в первом посту.


Так не выйдет, нужна конкретно открытая страница и на ней будут производится клики, вызывающие действия прямо на странице (яваскрипты).
Яваскрипты могут либо выполнять действия только на компе, тогда их в принципе можно проигнорировать. Либо они могут посылать какието данные на сервер, это теоретически можно имитировать.
А вообще было бы неплохо ссылку на сайт, и информацию, что конкретно надо автоматизировать.


Garrett [?]
Я лично могу открыть в IE все свои почтовые ящики и прекрасно работать с ними!

Пробовал Gmail - ничего не вышло. Пошаговую инструкцию под конкретный сайт в студию пожалуйста.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
964
Kaster сказал(а):
Garrett
mail.ru работает через куки. открыть можно несколько ящиков. но при любой попытке обновить страницу, например при принудительном обновлении или попытке перейти по ссылке рабочим станет ящик с которого зашли последним.
cookie ставит любой почтовый сервер, необязательно mail.ru


Добавлено:
Сообщение автоматически объединено:

Действительно (зарегистрировал две почты на mail.ru), на майле этот фокус не проходит.
Но что интересно на qip.ru (бывшая pochta.ru) всё работает.
 
Автор
HukpoFuJl

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Garrett сказал(а):
Вы, по-моему, не читаете форум!
Читаете, только в моём случае этот пост был не актуален, я его опустил =)

dwerf сказал(а):
Я имел в виду следующее:
Открывается в ие сайт, проводится логин, ие при этом сохраняет имя/пароль/сессию/идентификатор пользователя в кук. Скриптом проводятся какие то действия. Потом скрипт читает идентификатор пользователя из кука и логинится под новым именем. Снова проводятся какие то действия. Скрипт читает идентификатор нового пользователя из кука и пишет идентификатор старого пользователя в кук. Снова проводятся какие то действия под первым пользователем. Так пользователей можно постоянно менять.
Проблема в том что, насколько я понял, одновременно через ие может залогиниться только один пользователь. Поэтому как не выпенривайся, останется эта пошаговость. Проще сразу всё делать под одним пользователем потом под вторым итд. как было описано в первом посту.
Видимо на данный момент это единственный выход... По крайней мере через кук это будет работать значительно быстрее...

dwerf сказал(а):
Яваскрипты могут либо выполнять действия только на компе, тогда их в принципе можно проигнорировать. Либо они могут посылать какието данные на сервер, это теоретически можно имитировать.
А вообще было бы неплохо ссылку на сайт, и информацию, что конкретно надо автоматизировать.
Ява отсылает данные на сервер... Какие именно данные - неизвесно, сами ява команды дотошно распиханы по всему коду страницы и часто ссылаются друг на друга... Я в яве очень даже не силён, поэтому объеденить всё в одну нужную мне команду как-то не выходит... приходится кликать тупо по картинкам, которые вызывают действие скрипта...
Ссылку на сайт-то я дать могу =)) Но для полной регистрации на сайте нужно около недели времени... Только после этого вы сможете попасть на ту страницу, которую я кликаю (там что-то вроде конкурса), а вот проблема, что после 15го числа этой страницы в принципе на сайте уже не будет =) Так что смысла нагружать вас этим не вижу... Дать свои учётные данные я разумеется тоже не смогу :smile:
Нужно простое общее решение, как открыть страницу, например сразу с параметрами сессии и т.п.? Естьже некоторые сайты, которые например присылают на мыло письмо, в духе "У вас новое сообщение на сайте бла-бла-бла.ру" и ссылку на прочтение сообщения... после перехода по ссылке вы автоматом оказываетесь залогиненым на сайте и всё отлично... Подобная система обладает каким-либо общим описанием, или это зависит от конкретного сайта?
 
Автор
HukpoFuJl

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Всем по спасибке и по +1 за участие... В результате пошаговость осталась, но я её всёже сократил до минимума... Файерфоксом исследовал нужные мне запросы и автоматизировал некоторые прямым вводом в адресную строку "javascript:scriptname()" - это избавило от нужды кликать по картинкам.
HukpoFuJl сказал(а):
Естьже некоторые сайты, которые например присылают на мыло письмо, в духе "У вас новое сообщение на сайте бла-бла-бла.ру" и ссылку на прочтение сообщения... после перехода по ссылке вы автоматом оказываетесь залогиненым на сайте и всё отлично... Подобная система обладает каким-либо общим описанием, или это зависит от конкретного сайта?
Мой сайт оказался какразтаки одним из таких и я вместо логина начал просто пользоваться ссылками http://сайт/autologin?n=номер_пользователя_из_куков&hw=какой-то_непонятный_код_из_куков&url=/адрес_нужной страницы/
Некоторые запросы выследил FireBug'ом в ФайерФоксе и исполнял из простой функцией InetGet ($url)
В общем тему помечаю решенной...
 
Автор
HukpoFuJl

HukpoFuJl

AццkuЙ HukpoFuJl
Сообщения
98
Репутация
38
Верх