capcha2.jpgЯ уже чуть раньше написал о том, как «разгадывать капчи», а сейчас решил развить этот пример в что-то более практичное.

Цель: автоматизировать добавление страниц в 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("http://webmaster.yandex.ru/addurl.xml",$postdata);

Вот и все. Кстате для этого метода нет необходимости использовать прокси т.к. капчи вводятся безошибочно, а значит и банить незачто!

Ну и собственно весь PHP скрипт для автоматизации добавление страниц в addurl яндекса. Используется anti-captcha:

h++p://myseoincome.ru/2009/02/php_yandex_addurl/

Категория: PHP, HTML, CSS... | Теги: , ,

Оставьте свой комментарий