Привет, у меня вопрос, как правильно использовать $webpage->get_body_inter_prefix_all ?
Мне надо сделать авторегер для форумов
$browser->navigate('http://forum.v-galaktike.ru');
$anchor->click_by_inner_text('Регистрация');
$browser->wait(1);
$checkbox->click_by_id('cb_rules_agree');
$button->click_by_value('Регистрация');
$browser->wait(1);
$input->set_value_by_name('username','Gilman');
$input->set_value_by_name('password','passwrd12345');
$input->set_value_by_name('passwordconfirm','passwrd12345');
$input->set_value_by_name('email','xakep@mail.ru');
$input->set_value_by_name('emailconfirm','xakep@mail.ru');
echo $webpage->get_location_url();
echo $webpage->get_body_inter_prefix_all('<label for="humanverify">','</label>');
дело в том что на форуме в качестве антикапчи используется случайный вопрос и у меня не получается его выцыпить. Я попробовал так же и по другим шаблонам собрать элементы страницы. Но не получилось, как быть?
Так есть ли варианты?
как использовать $webpage->get_body_inter_prefix_all ?
Re: как использовать $webpage->get_body_inter_prefix_all ?
Если вы пытаетесь получить один кусок строки, а не массив, то вам нужно использовать вместо
функцию
описание get_body_inter_prefix_all: http://humanemulator.net/objects/WEB/we ... ix_all.php
описание get_body_inter_prefix: http://humanemulator.net/objects/WEB/we ... prefix.php
и в тексте страницы префиксы для разбора выглядят как: '<LABEL for=humanverify>','</LABEL>'
а не '<label for="humanverify">','</label>'
в итоге имеем скрипт ввиде:
Код: Выделить всё
echo $webpage->get_body_inter_prefix_all('<LABEL for="humanverify">','</LABEL>');
Код: Выделить всё
echo $webpage->get_body_inter_prefix('<LABEL for=humanverify>','</LABEL>');
описание get_body_inter_prefix: http://humanemulator.net/objects/WEB/we ... prefix.php
и в тексте страницы префиксы для разбора выглядят как: '<LABEL for=humanverify>','</LABEL>'
а не '<label for="humanverify">','</label>'
в итоге имеем скрипт ввиде:
Код: Выделить всё
$browser->navigate('http://forum.v-galaktike.ru');
$anchor->click_by_inner_text('Регистрация');
$browser->wait(1);
$checkbox->click_by_id('cb_rules_agree');
$button->click_by_value('Регистрация');
$browser->wait(1);
$input->set_value_by_name('username','Gilman');
$input->set_value_by_name('password','passwrd12345');
$input->set_value_by_name('passwordconfirm','passwrd12345');
$input->set_value_by_name('email','xakep@mail.ru');
$input->set_value_by_name('emailconfirm','xakep@mail.ru');
echo $webpage->get_location_url();
echo "<br>";
echo $webpage->get_body_inter_prefix('<LABEL for=humanverify>','</LABEL>');
Re: как использовать $webpage->get_body_inter_prefix_all ?
кстати у вас в примере, тут указано http://humanemulator.net/objects/WEB/we ... prefix.php echo $webpage->get_body_inter_prefix_all("<TD>","</TD>"); потому и косяк получился. Да и я не совсем понял для чего указывать префикс заглавными, ведь в исходнике они написаны строчными?
Re: как использовать $webpage->get_body_inter_prefix_all ?
body часто отличается от исходного кода, т.е после обработки браузером исходный код может слегка отличаться, особенно в плане заглавных и строчных букв, да и после отработки JS.Да и я не совсем понял для чего указывать префикс заглавными, ведь в исходнике они написаны строчными?
Re: как использовать $webpage->get_body_inter_prefix_all ?
Создавать новую тему не буду, просто отпишу тут.
На этот раз проблема уже связана с get_body_inter_prefix_all. Пытаюсь сделать свой парсер гугла, что бы разобраться с программой и за одно набить руку.
За основу решил использовать парсер гугла X-Scripts.com. Но работает он через одно место. Он выцыпляет ссылки из <cite> ссылка</cite>, но вид они могут иметь вида rutracker.org › ... › Разное (Веб-разработка и программирование). Естественно такой вид ссылки меня не устраивает. Чистить очень муторно, потому я хочу выдерать информацию из
Для этого пытаюсь заюзать функцию get_body_inter_prefix_all('<H3 class="r">','</H3>'); да бы потом почистить от мусора. Но функция не выдирает из html ничего вообще. пробовал и строчными писать.. так и не получилось запустить. Что я делаю не так?
На этот раз проблема уже связана с get_body_inter_prefix_all. Пытаюсь сделать свой парсер гугла, что бы разобраться с программой и за одно набить руку.
За основу решил использовать парсер гугла X-Scripts.com. Но работает он через одно место. Он выцыпляет ссылки из <cite> ссылка</cite>, но вид они могут иметь вида rutracker.org › ... › Разное (Веб-разработка и программирование). Естественно такой вид ссылки меня не устраивает. Чистить очень муторно, потому я хочу выдерать информацию из
Код: Выделить всё
<H3 class="r"><A class="l" onmousedown="return rwt(this,'','','','3','AFQjCNE-dFAI6dijgn-Zg7q7eIOcJtRXvQ','','0CDcQFjAC','','',event)"
href="http://forum.blablabla.ru/">Форум Бла бла бла - <EM>Powered by
vBulletin</EM></A></H3>
Код: Выделить всё
$key = "запрос";
$browser->navigate("google.com");
$input->set_value_by_name("q",$key);
$input->click_by_name("q");
$keyboard->send_key(32,true);
$keyboard->send_key(13,true);
sleep(1);
echo $webpage->get_body_inter_prefix_alll('<H3 class="r">','</H3>');
echo $key;
Re: как использовать $webpage->get_body_inter_prefix_all ?
Нужно использовать функцию так:
Чтоб ыопределить префиксы и суффиксы нужно смотреть не source а текст DOM (меню Отладка->Показать Текст DOM) и еще в коде в функции на конце get_body_inter_prefix_alll
Код: Выделить всё
$key = "веб";
$browser->navigate("google.com");
$input->set_value_by_name("q",$key);
$input->click_by_name("q");
$keyboard->send_key(32,true);
$keyboard->send_key(13,true);
sleep(1);
echo $webpage->get_body_inter_prefix_all('<h3 class="r">','</h3>');
echo $key;