Вопросы Php по Human Emulator

а стоит ли таким образом проверять каждый шаг, не перегрузит это скрипт, я например пользую $webpage->get_source(); для получения данных страницы, с помощью регулярки ищу нужное слово и исходя из этого даю необходимое действие, так вот, если после каждого шага алгаритма ставить, не перегрузится скрипт, не начинает тупить эмулятор или время не увеличивается существенно после такого действия?
P.S. может и глупый вопрос, не ругайтесь, начал изучение основ php три дня назад

Мне как минимум это необходимо для корректно тестирования скрипта, чтобы выяснить причину на каком шаге, что-то пошло не так, и в каком месте программы нужны что-то поправить. Вдруг на сайте изменится выдача, или название ссылок, или еще что-нибудь... Да и потом в некоторых скриптах использую прокси, которые бывают не всегда надлежащего качества, и часто стопорятся на совсем безобидных местах, в этом случае, опять же можно отлавливать по загрузке странице, и продолжать или начинать заного с использованием новой прокси =)
 
так значит всетаки грузит скрипт, или все же не существенно? я так понимаю у тебя большое кол-во задач выполняется, поделись секретом как это влияет, грузит, увеличивает время, или лучше поставить для надежности. мне это важно, просто интернет нестабильный, бывает страницу неотобразит, и все, скрипт встал, а если регуляркой проверить то можно ее ребукнуть и проблема решена. но мне кажется что после каждой задачи, это тяжко для скрипта, или я ошибаюсь?
 
так значит всетаки грузит скрипт, или все же не существенно? я так понимаю у тебя большое кол-во задач выполняется, поделись секретом как это влияет, грузит, увеличивает время, или лучше поставить для надежности. мне это важно, просто интернет нестабильный, бывает страницу неотобразит, и все, скрипт встал, а если регуляркой проверить то можно ее ребукнуть и проблема решена. но мне кажется что после каждой задачи, это тяжко для скрипта, или я ошибаюсь?

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

Вопрос: Можно ли как-нибудь определить сколько длится эта переадресация, или как-нибудь определить событие окончания переадресации?

Как вариант, работает sleep(10), но это как минимум некрасивое решение, и тратится довольно много лишнего времени, в задаче важна скорость.
Еще как вариант, сделать цикл, в котором слип делается каждую секунду, пока не загрузится страница, где регуляркой проверится необходимый текст, но это тоже, не очень красивое решение
 
Я обычно использую вариант с циклом, описанный вами в последнем предложении.

Кроме него могу предложить:
PHP:
$webpage->get_location_url();
Данная функция используется для получения текущего урла браузера
или
PHP:
$webpage->get_title();
Данная функция используется для получения заголовока страницы

Обе функции позволят проверять изменение страницы.
Хотя опять же нужен цикл с break в случае смены заголовка или урла :)
 
В ходе экспериментов, вроде получился такой вариант
1) вводим логин и пароль, нажимаем ок
2) открывается страница переадресации
3) не дожидаясь страницы переадресации сами переходим на главную

Скорость переадресации субъективно не очень изменилась, но зато пропал цикл, и задержка в sleep :)

ps а вот при получение письма с активацией, такие фишки уже не проходят, и придется пользоваться циклом со слипом :(
 
не могу сообразить, как файл залить, опять же на движке wordpress к примеру, импорт xml, пока только придумал так, кликаем по кнопочке обзор, потом последовательностью команды $keyboard->press_key_by_code($code); вводим имя файла и ентер, опять же командой $keyboard->press_key_by_code($code); но минус большой что окно эмулятора должно быть активно, да и неработает так. есть каиенибудь решения?
 
не могу сообразить, как файл залить, опять же на движке wordpress к примеру, импорт xml, пока только придумал так, кликаем по кнопочке обзор, потом последовательностью команды $keyboard->press_key_by_code($code); вводим имя файла и ентер, опять же командой $keyboard->press_key_by_code($code); но минус большой что окно эмулятора должно быть активно, да и неработает так. есть каиенибудь решения?

Обычно где есть кнопочка обзор так же присутствует строка с адресом загружаемого файла, если она есть, попробуйте туда вбить путь к вашему файлу
 
если не затруднит, у меня еще вопрос. вот проверил я регуляркой какой-нибудь шаг, после, два варианта, либо продолжаем, либо перезагружаемся и опять продолжаем, и в обе ветви приходится писать весь скрипт, в один просто скрипт, в другую перезагрузка и скрипт, вот пример
PHP:
$subject = $webpage->get_source();
$pattern = '/\bSorry\b/i';
if (preg_match($pattern, $subject))
 {

  перезагрузка и дальше скрипт  

} else {
    дальше скрипт
}

если после каждого шага то скрипт вырастет до бесконечных размеров, вопрос, что я делаю не так? :thenks:
 
Все в цикл while или for, а внутри примерно так:
PHP:
while (1)
{
	$subject = $webpage->get_source();
	$pattern = '/\bSorry\b/i';
	if (preg_match($pattern, $subject))
	{
		перезагрузка  
	}
	дальше скрипт
}
 
Назад
Сверху