Автоматизация работы с addurl Яндекса
Я уже как-то писал о том, как «разгадывать капчи«, а сейчас решил развить этот пример в что-то более практичное.
Цель: автоматизировать добавление страниц в 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);
Вот и все. Кстате для этого метода нет необходимости использовать прокси т.к. капчи вводятся безошибочно, а значит и банить незачто!



Что-то у меня ошибка вылазиет: Upload ERROR
Как исправить?
Эта ошибка возникает когда не удается загрузить отправить капчу анти-капче. Чтобы понять в чем дело замени
echo «Upload ERROR»;
на
echo «Error: «.$rev;
получишь код ошибки.
исходник не скачивается..
@wilf
спасибо, исправил
Нихрена не работает ваш Великий скрипт!
Не удается ему распознать каптчу на сайте http://anti-captcha.com
т.к. данный сайт предлагает свои услуги за бабки, за 1 доллар!
Даже на нем зарегиться нельзя, так как нужен код приглашения!
@Роман
А я где-то писал, что антикапча бесплатная?
Конечно за деньги. Только 1 доллар = 1000 капч
Поделитесь опытом: натыкались ли на грабли при массовом добавлении страниц в адурилку таким способом? Например, при частом парсинге поисковой выдачи яндекс начинает спрашивать, не робот ли вы. Здесь тоже есть такая защита или пока всё свободно? Если защита есть, то какие интервалы времени между добавлениями безопасны?
Честно говоря после написания скрипта у меня так и не возникла необходимость массово что-то кидать в addurl, НО
при каждом добавлении мы «вводим капчу» и по-этому я не думаю что яндекс может подумать что это робот
В связи с изменениями на яндексе – есть смысл пересмотреть структуру скрипта, ныне он не пашет.
поддерживаю! скрипт не работает! подскажите, что подправить????
Ну в общем подправил и обновил файл.
Вот только возникла проблема с выводом отчета (определением статуса), возможно исправлю в будущем
а ключ антикаптчи вы случайно свой в файле оставили? или это левый?
Хаха. Забыл убрать) Спасибо!
не за что)
ждем исправление отчета)
Есть подозрение, что обновленный скрипт не работает…
Пытался сам поправить выдачу отчета (добавил перекодировку $cap из UTF в 1251 при получении результата) – оказалось, что во втором случае $cap выдает исходную страничку, только со вставленным в поле добавляемым адресом…
Прошу автора проверить, т.к. моего опыта не хватает…
если бы он не работал я б его не выкладывал!
отчеты не смог сделать потому что строчка оповещающая о статусе операции подгружается не сразу.. может аяксом.. но в этом пока небыло времени копаться
Насколько я понял скрипт не актуален. яндекс убрал страничку добавления
@gaws
http://webmaster.yandex.ru/addurl.xml
вроде все на месте