Цель: автоматизировать добавление страниц в addurl Яндекса (webmaster.yandex.ru)
Скрипт конечно же на PHP и для определения значений капчи я все также использую сервис anti-captcha.com.
Вперед...
Форма с данными отправляется на http://webmaster.yandex.ru/add.xml
Принимаемые данные: url => добавляемый url
key => идентификатор операции
rep => значение капчи
Основная задача для нас - получить идентификатор операции. Это своего рода идентификатор сессии, только он не прячется в куках. Можно написать регулярное выражение, но я решил использовать одну известную мне полезную функцию //возвращает то, что между $left и $right в $str
function cut_str($str, $left, $right) { $str = substr(stristr($str, $left), strlen($left)); $leftLen = strlen(stristr($str, $right)); $leftLen = $leftLen ? -($leftLen) : strlen($str); $str = substr($str, 0, $leftLen); return $str; }
К примеру чтобы из вот этого <input type="hidden" name="key" value="41b8227dcc2c765d90386921797db4ca">
вытащить идентификатор, использует функцию следующим образом $key = cut_str($data, 'name="key" value="','"');
Дальше идем за качпей. Ее получаем по адресу
http://captcha.yandex.net/image?key={идентификатор операции}
Следующим шагом нужно определить значение этой капчи. Об этом я подробно писал раньше. Если значение капчи нам известно, то остается только отправить форму скрипту яндекса. $postdata = array( 'url' => $link, 'key' => $key, 'rep' => $captcha_value ); $cap = geturl("http://webmaster.yandex.ru/add.xml",$postdata);
Вот и все. Кстате для этого метода нет необходимости использовать прокси т.к. капчи вводятся безошибочно, а значит и банить незачто!
|