Я уже чуть раньше написал о том, как «разгадывать капчи», а сейчас решил развить этот пример в что-то более практичное.
Цель: автоматизировать добавление страниц в addurl Яндекса (webmaster.yandex.ru)
Скрипт конечно же на PHP и для определения значений капчи я все также использую сервис anti-captcha.com.
Вперед…
Форма с данными отправляется на http://webmaster.yandex.ru/addurl.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("https://webmaster.yandex.ru/addurl.xml",$postdata);
Вот и все. Кстате для этого метода нет необходимости использовать прокси т.к. капчи вводятся безошибочно, а значит и банить незачто!
Ну и собственно весь PHP скрипт для автоматизации добавление страниц в addurl яндекса. Используется anti-captcha:
h++p://myseoincome.ru/2009/02/php_yandex_addurl/
Оставьте первый комментарий