(и еще 5 записям на сайте сопоставлена такая метка)
Другие метки пользователя ↓
addurl anti-captcha javascript php sape seo ucoz wmz yandex антикапча бегун идеи империя инвайт капча непот платные ссылки стратегия тиц цель эксперименты яндекс
Перевод средств в Anti-captcha |
Дневник |
Вычитал в новостях анти-капчи о новой функции в их системе - перевод средств между акаунтами, причем без комиссии! А поскольку за счет инвайтов в системе я накопил уже довольно хорошую сумму и потратить на капчи я ее при всем желании не смогу..
В общем произвожу обмен WMZ - Anti-captcha + 10% в подарок
Минимальная сумма обмена - 10$. Предложения в комментарии
Подробнее - Перевод средств в Anti-captcha
Метки: wmz anti-captcha антикапча |
Автоматизация работы с 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);
Вот и все. Кстате для этого метода нет необходимости использовать прокси т.к. капчи вводятся безошибочно, а значит и банить незачто!
Метки: php anti-captcha yandex addurl |
Разгадываем капчи |
Дневник |
Как я уже говорил - я программист и помимо SEO буду еще писать статьи о программировании (если будут интересные идеи).
Темой для первой статьи решил выбрать “разгадывание” капчей!
Во-первых давай подумаем зачем оно нам нужно?! Капчами сейчас защищают практически все формы заполняемые случайными посетителями. Их используют при регистрации на форумах, регистрации ящиков.. да вообще везде. А теперь представь, что ты достал большую базу каталогов ссылок на каком-то определенном движке и там для размещения ссылки нужно вводить капчу!
Если бы капчи не было, то все было бы очень просто, спамь и все. А что делать если капча есть? Да на самом деле все так же просто, только нужно еще научиться использовать сервис anti-captcha.com! Поехали…
Для начала нужно зарегистрироваться на сайте anti-captcha.com. Стоимость одной капчи - $0.001- ИМХО - цена очень приятная ($1 за 1000 загрузок)
Инвайты для регистрации можно найти в комментариях к старой теме
После регистрации нужно пополнить счет и посмотреть свой ключ (дальше $key) в настройках.
Для экспериментов сделал вот такую вот простую формочку
http://myseoincome.ru/php/anticaptcha/
Форма-имитатор регистрации с капчей. Вводим любое имя и значение с капчи.
Если капчу ввели правильно, то получаем сообщение:
Привет кодер тест пройден
В противном случае:
Вернись и введи правильный код!
Для начала нужно провести анализ полей формы. У нас есть следующие поля:
user - имя пользователя captcha - значение капчи act=reg - скрытое поле
Все это нужно посылать методом POST. Картинку нам отдает скрипт img.php
Еще следует помнить, что значение капчи привязано к сессии, а значит после первого подключения нам нужно будет сохранить идентификатор сессии.
Алгоритм:
Вот так вот, все просто. Начнем.
Основная функция в скрипте - geturl(). С ее помощью будем сливать и постить.
Принимает URL к которому подключиться, массив $postdata с данными для POST и параметр $header. Если последний равен единице, то выводим только заголовки страницы
<?php function geturl($url,$postdata=0,$header=0) { $poststr=""; if ($postdata) while (list($name,$value)=each($postdata)){ if (strlen($poststr)>0) $poststr.="&"; $poststr.=$name."=".urlencode($value); } // инициализация сеанса $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); if ($header){ curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); }else{ curl_setopt($ch, CURLOPT_HEADER, 0); } if ($postdata){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $poststr); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); return $res; } ?>
Для начала нужно получить идентификатор сессии. Для этого получаем заголовки
$header = geturl('http://myseoincome.ru/php/anticaptcha/',0,1);
Ответ
HTTP/1.1 200 OK Date: Sat, 13 Dec 2008 09:16:20 GMT Server: Apache/1.3.34 (Debian) Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Expires: Thu, 19 Nov 1981 08:52:00 GMT Pragma: no-cache X-Powered-By: PHP/5.2.0-8+etch13 Set-Cookie: PHPSESSID=edd8be2ff7a1577cc048734b43607415; path=/ Connection: close Content-Type: text/html
Из этого всего вытаскиваем ID сессии (edd8be2ff7a1577cc048734b43607415)
preg_match('|PHPSESSID=(.*);|U', $header, $out); $session = $out[1];
Теперь, имея идентификатор, можно слить капчу и отправляем ее на anti-captcha.com
Рассказывать о том, какие параметры принимает этот сервис и зачем, я не буду, документации на их сайте хватает.
$postdata = array( 'PHPSESSID' => $session ); $captcha = geturl('http://myseoincome.ru/php/anticaptcha/img.php',$postdata); $postdata = array( 'method' => 'base64', 'key' => $key, 'body' => base64_encode($captcha), 'ext' => 'png' ); $rev = geturl("http://anti-captcha.com/in.php",$postdata); if (substr($rev,0,2)=='OK'){ //получаем id капчи в системе $anti_captcha_id = substr($rev,3); }else{ echo "Upload ERROR"; exit; } //ждем 15 сек и проверяем капчу sleep(15); $postdata = array( 'key' => $key, 'action' => 'get', 'id' => $anti_captcha_id ); $cap = geturl("http://anti-captcha.com/res.php",$postdata); if (substr($cap,0,2)=='OK'){ $captcha_value = substr($cap,3); }else{ echo "ERROR"; exit; }
О этом куске кратко. Сначала используя ID сессии сливаем капчу и постим ее в антикапчу. Из ответа антикапчи получаем ID операции, по которому потом будет проверять ее статус. Поскольку эти капчи вводят люди и для распознания им нужно время, то я сделал перед проверкой значения, паузу в 15 секунд! Правильнее было бы проверять статус каждые 5 сек. в цикле, но усложнять этот пример я не буду, сами допишете.
В итоге, если все прошло без ошибок, мы получим значение введенной капчи. Остается только запостить форму!
$postdata = array( "user" => "SEO-шник", "captcha" => $captcha_value, "act" => "reg", "PHPSESSID" => $session ); $recdata = geturl('http://myseoincome.ru/php/anticaptcha/',$postdata); echo $recdata;
Я получил в ответ:
Привет SEO-шник
тест пройден
Пример может подвиснуть если антикапча перегружена, а по ответам антикапчи можно определить когда заканчиваются средства на счете или когда просто нет свободных слотов. Все это найдете на страницы документации сервиса.
Вот и все. При перепечатывании очень прошу указывать автора и этот сайт. Удачи!
Метки: php капча инвайт anti-captcha |
Страницы: | [1] |