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

как перезапустить скрипт, т.е. отправить его на повторное выполнение с определенного места?
Пример:
Код:
$mouse->click(30,72);
echo $app->pause(60000)."<br>";
$mouse->click(162,72);
какой код теперь написать, чтобы он снова начал выполняться с этой $mouse->click(30,72); строчки?
В AS можно написать просто gotoAndPlay(номер); а в php не знаю ((
 
Последнее редактирование:
вот так например через goto:

Код:
retry:
$mouse->click(30,72);
echo $app->pause(60000)."<br>";
$mouse->click(162,72);
goto retry;


2magarych
Подскажите как открыть ссылку без атрибута target="_blank"
пишу вот такой код ничего не получается.
PHP:
<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");
$browser->navigate('Для просмотра ссылки Войди или Зарегистрируйся
$browser->wait_for(240,1);
sleep(3);
// получим все аттрибуты
echo $element->get_all_attributes_by_number(107)."<br><hr>";
// удалим target
$frame->remove_attribute_by_number(107,"target='_blank'") ;
// получим все аттрибуты
echo $element->get_all_attributes_by_number(107)."<br><hr>";
// Quit
$app->quit();
?>

юзай $webpage->set_body:
Код:
<?php
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");
$browser->navigate('http://www.i.ua');
$browser->wait_for(240,1);
sleep(3);
$wpbody = $webpage->get_body(); //получаем тело страницы
$wpbody = preg_replace("#target=_blank#s","",$wpbody); // вырезаем все таргетбланки
$wpbody = preg_replace("#target=\"_blank\"#s","",$wpbody); // вырезаем все таргетбланки
$webpage->set_body($wpbody); //подменяем тело страницы
// Quit
$app->quit();
?>
 
Последнее редактирование:
baltazorg, теперь необходимо немного оптимизировать код, но засорять не хочу. Подскажите как сделать повторение исполнения кода только 10 раз?
Нужно как бы цыкл в цыкле. Примерно так:
Код:
retry:

// подцыкл - этот код повторить только 10 раз
$mouse->click(30,72);
echo $app->pause(60000)."<br>";
$mouse->click(162,72);

// продолжение кода
...
goto retry;
 
тогда проще использовать цикл for
Код:
$kol = 10; //количество повторений
for ($i = 0; $i < $kol; $i++) {
//тут код который надо повторить
}
 
Пытаюсь Humanom дернуть новость с сайта, в результате обработки попадаются в тексте нечитаемые символы вроде "минимальные Ы±ЯбPҐµаю_p·Ґобязательные требования" или "СШЫ±ЯбXЗµаю_p·ҐА, Япония и Австралия", хотя основной текст в порядке. Есть основания полагать, что с кодировкой не лады, или стоит защита контента.

Как победить?
 
Пытаюсь Humanom дернуть новость с сайта, в результате обработки попадаются в тексте нечитаемые символы вроде "минимальные Ы±ЯбPҐµаю_p·Ґобязательные требования" или "СШЫ±ЯбXЗµаю_p·ҐА, Япония и Австралия", хотя основной текст в порядке. Есть основания полагать, что с кодировкой не лады, или стоит защита контента.

Куда-то нажать и что-то написать.
Попробуйте перефразировать вопрос, указать например с какого сайта и какую новость.
А также попробуйте открыть этот сайт через IE и посмотреть, действительно ли там текст в порядке.
 
И код заодно посмотреть, возможно, в качестве защиты часть текста представлена в виде другой кодировки. Обычное "чистое" (без форматирования) копирование в блокнот что даёт?
 
PHP:
$lk='http://www.interfax.ru/russia/news.asp?id=340235';
$browser->navigate($lk);
$browser->wait();

$page=$webpage->get_source();
preg_matchl('/reachbanner.*">(.*?)\/div>/is', $page, $out);

print_r($out);
//или
echo htmlspecialchars($out[0]);

дает одно и то же. Кодировка CP1251. Например в выводе этого скрипта попадаются такие участки как: "что ходили слухpЈЬX іи, будто". Вот что показывает блокнот после копирования из Хумана "что ходили слухpЈЬX іи, будто".

Регулярка до конца не доработана, но суть в принципе видна.

В IE посмотреть пока не могу, чет не хочет он в виде ХТМЛ отображать, думаю что вирус его попортил.

кстати, копирование с донора в блокнот отображает нормально, но приклеивается "смотрите оригинал материала" + адрес донора
 
Последнее редактирование модератором:
Это какую-то функцию вы свою писали или опечатка?

Я скопировал код, вместо preg_matchl написал preg_match запустил, нормально там текст новости отображается.
Нужно только конец регулярки доделать, чтобы только новость выбиралась.
 
Это какую-то функцию вы свою писали или опечатка?

Я скопировал код, вместо preg_matchl написал preg_match запустил, нормально там текст новости отображается.
Нужно только конец регулярки доделать, чтобы только новость выбиралась.

Сорри, там же пробовал и preg_match_all. Да, с регуляркой согласен. Может подскажите почему тогда у меня такие кракозябры появляются?

В IE смотрел, структура html кода в порядке. Может проблема в том что у меня еще и апач стоит, хотя он отключен. Скрипты (java/javascript) при старте тоже отключаю. Ума не приложу откуда эта дребедень береться.

PHP:
$page=file_get_contents('http://www.interfax.ru/russia/news.asp?id=340300');
preg_match_all('/reachbanner.*">(.*?)\/div>/is', $page, $out);
print_r($out);

пробовал в через апач, выводиться все отлично. Получается проблема в хумане, версия 4.0.14. Может сталкивались с такой проблемой?

Оказывается, дело действительно в Хумане, этот баг возникает в окне отладки при выводе. Если записать в файл то все в порядке.

PHP:
preg_match_all('/reachbanner.*">(.*?)\/div>/is', $page, $out);

подскажите по регулярке, почему reachbanner захватывает и на /div> не останавливается?

Потому что изначально она жадная тобиш берет максимум того под что подходит шаблон. Для отключения этого используется квантификатор жадности "U"
да, действительно работает. Спасибо.
 
Последнее редактирование модератором:
Назад
Сверху