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

После $browser->navigate
PHP:
$browser->wait_for(5,0);
или
PHP:
sleep(5);

Дальше регуляркой проверяете наличие данных на странице, которые будут если страница загрузилась.
Данные есть - выполняете цикл.
Данных нет - следующая итерация.
 
В регулярке не очень силен, может поискать наличие тегов </body>
</html>
 
нужна помощь, сам в пхп нуб. как видите в html коде input name="checked[]" везде одинаковый, а чекбоксы разные, отличаются они по value=. необходимо выбрать только те которые мне надо апример в all-in-one-seo-pack/all_in_one_seo_pack.php и поставить там галочки, в эмуляторе нашел только следующую каманду $checkbox->click_by_name('checked[]'); она не подходит ставит одну галочку в самом первом чекбоксе
PHP:
<tr class="active">
        <th scope="row" class="check-column"><input name="checked[]" value="all-in-one-seo-pack/all_in_one_seo_pack.php" type="checkbox"></th>
        <td class="plugin-title"><strong>All in One SEO Pack</strong></td>
        <td class="desc"><p>Out-of-the-box SEO for your Wordpress blog. <a href="options-general.php?page=all-in-one-seo-pack/aioseop.class.php">Options configuration panel</a> | <a href="http://wpplugins.com/plugin/50/all-in-one-seo-pack-pro-version">Upgrade to Pro Version</a> | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=mrtorbert%40gmail%2ecom&amp;item_name=All%20In%20One%20SEO%20Pack&amp;item_number=Support%20Open%20Source&amp;no_shipping=0&amp;no_note=1&amp;tax=0&amp;currency_code=USD&amp;lc=US&amp;bn=PP%2dDonationsBF&amp;charset=UTF%2d8">Donate</a> | <a href="http://semperfiwebdesign.com/forum/">Support</a> |  <a href="https://www.amazon.com/wishlist/1NFQ133FNCOOA/ref=wl_web" title="Amazon Wish List">Amazon Wishlist</a></p></td>
    </tr>
    <tr class="active second">
        <td></td>
        <td class="plugin-title"><div class="row-actions-visible"><span class="deactivate"><a href="plugins.php?action=deactivate&amp;plugin=all-in-one-seo-pack%2Fall_in_one_seo_pack.php&amp;plugin_status=all&amp;paged=1&amp;_wpnonce=b58025b61f" title="Deactivate this plugin">Deactivate</a></span></div></td>
        <td class="desc">Version 1.6.12.1 | By <a href="http://michaeltorbert.com" title="Visit author homepage">Michael Torbert</a> | <a href="http://semperfiwebdesign.com" title="Visit plugin site">Visit plugin site</a></td>
    </tr>
    <tr class="active">
        <th scope="row" class="check-column"><input name="checked[]" value="CyberSyn/cybersyn.php" type="checkbox"></th>
        <td class="plugin-title"><strong>CyberSyn</strong></td>
        <td class="desc"><p>Simple RSS feed syndicator for WordPress.</p></td>
    </tr>
<tr class="active second">
		<td></td>

		<td class="plugin-title"><div class="row-actions-visible"><span class="deactivate"><a href="plugins.php?action=deactivate&amp;plugin=CyberSyn%2Fcybersyn.php&amp;plugin_status=all&amp;paged=1&amp;_wpnonce=963239297f" title="Deactivate this plugin">Deactivate</a></span></div></td>
		<td class="desc">Version 1.12 | By <a href="http://www.cyberseo.net/" title="Visit author homepage">CyberSEO.NET</a> | <a href="http://www.cyberseo.net/downloads.html#cybersyn" title="Visit plugin site">Visit plugin site</a></td>
	</tr>

	<tr class="inactive">
		<th scope="row" class="check-column"><input name="checked[]" value="embed-iframe/embediframe.php" type="checkbox"></th>

		<td class="plugin-title"><strong>Embed Iframe</strong></td>
		<td class="desc"><p>Allows the insertion of code to display an external webpage within an iframe. The tag to insert the code is: <code>[iframe url width height]</code></p></td>
	</tr>
 
Используйте
PHP:
$checkbox->click_by_number();
ведь их количество на странице, как я понимаю, постоянно у вас.
 
еще вопрос, нужно в wordpress вставить виджет "текст" и в него загнать данные, как можно реализовать через эмулятор? просто перенос за гриву в сайд бар не получается, не фиксируется там виджет :(
 
и вот накидал скрипт, цель его заполнение форм вытягивая из файлов нужные значения, т.е. первый раз он берет первые строчки из файла и ставит в нужные места, потом опять загружает эту же страничку и ставит данные из вторых строк файлов. в таком виде вроде работает, но если я загружаю дополнительными задачами, каждый проход, то происходит сбой что ли, и он начиает по порядку запихивать данные с первой строки, но т.к. он их уже вставлял страница дает ошибку что такие данные уже вставил, постепенно переходит на те которые не использовал и продолжает работать, впринципе все работает, но мне кажется что что-то не так я сделал, може можно упростить, если можете подпилите, плиз..
PHP:
$browser->navigate('http://mydomain.com/wp-signup.php');
$browser->wait_for(240,1);

$a=file('domain.txt');
$b=file('title.txt');


for ($i=0;$i<1;$i++)
{
$input->set_value_by_name('blogname',$a[$i]);

$input->set_value_by_name('blog_title',$b[$i]);
} 

$browser->navigate('http://mydomain.com/wp-signup.php');
$browser->wait_for(240,1);

$a=file('domain.txt');
$b=file('title.txt');


for ($i=0;$i<2;$i++)
{
$input->set_value_by_name('blogname',$a[$i]);

$input->set_value_by_name('blog_title',$b[$i]);
} 

$browser->navigate('http://mydomain.com/wp-signup.php');
$browser->wait_for(240,1);

$a=file('domain.txt');
$b=file('title.txt');


for ($i=0;$i<3;$i++)
{
$input->set_value_by_name('blogname',$a[$i]);

$input->set_value_by_name('blog_title',$b[$i]);
} 

$browser->navigate('http://mydomain.com/wp-signup.php');
$browser->wait_for(240,1);

$a=file('domain.txt');
$b=file('title.txt');



for ($i=0;$i<4;$i++)
{
$input->set_value_by_name('blogname',$a[$i]);

$input->set_value_by_name('blog_title',$b[$i]);
}
я не стал вписывать что он там еще нажимает submit и выполяет другие функции, главная задача скрипта это подстановка из файлов сначала первые строки с выполнением всех функций, потом вторые, потом третие и т.д.
 
Возникла небольшая проблема, при использовании проксей в хумане, страницы загружаются просто нереально долго, это зависит от проксей конешно же, но на некоторых проксях, почему-то так происходит, что страница полностью загрузилась, все нарисовалось, но для хумана она почему-то еще грузится. Поэтому возник вопрос, можно ли остановить загрузку страницы после некоторого времени (например 40 секунд), и начать заполнять поля на ней, и после этого отправить их пост запросом. Чем это чревато, и как это реализовать?
 
Вместо $browser->wait(1); или подобного используйте слипы sleep (40);
Вообще, рекомендую следующий алгоритм:
1) грузите страницу, слип 40
2) регуляркой проверяете наличие какого-либо тега\слова на странице
3) если тег есть - обрабатываете, иначе - грузите через другую проксю
 
Вместо $browser->wait(1); или подобного используйте слипы sleep (40);
Вообще, рекомендую следующий алгоритм:
1) грузите страницу, слип 40
2) регуляркой проверяете наличие какого-либо тега\слова на странице
3) если тег есть - обрабатываете, иначе - грузите через другую проксю

1) Sleep вроде значит, ничего не делать в течении 40 секунд, в этом случае получается, что задержка будет всегда минимум 40 секунд, а в случае с $browser->wait(40); он будет ждать не более 40 секунд, и по прошествию получится такая же ситуация как и со слипом, так что разницы помоему не должно быть
2) использую, стараюсь таким образом проверять каждый шаг алогритма :)
3) использую

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