-Поиск по дневнику

Поиск сообщений в СЕОшник

 -Подписка по e-mail

 

 -Интересы

php seo фото nikon

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 14.02.2009
Записей:
Комментариев:
Написано: 23

Записи с меткой anti-captcha

(и еще 5 записям на сайте сопоставлена такая метка)

Другие метки пользователя ↓

addurl anti-captcha javascript php sape seo ucoz wmz yandex антикапча бегун идеи империя инвайт капча непот платные ссылки стратегия тиц цель эксперименты яндекс
Комментарии (0)

Перевод средств в Anti-captcha

Дневник

Среда, 25 Февраля 2009 г. 11:53 + в цитатник

Вычитал в новостях анти-капчи о новой функции в их системе - перевод средств между акаунтами, причем без комиссии! А поскольку за счет инвайтов в системе я накопил уже довольно хорошую сумму и потратить на капчи я ее  при всем желании не смогу..

В общем произвожу обмен WMZ - Anti-captcha + 10% в подарок

Минимальная сумма обмена - 10$. Предложения в комментарии

Подробнее - Перевод средств в Anti-captcha


Метки:  
Комментарии (0)

Автоматизация работы с addurl Яндекса

Дневник

Понедельник, 16 Февраля 2009 г. 13:40 + в цитатник

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

Цель: автоматизировать добавление страниц в 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);

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

Архив со скриптом


Метки:  
Комментарии (3)

Разгадываем капчи

Дневник

Пятница, 13 Февраля 2009 г. 00:44 + в цитатник

Как я уже говорил - я программист и помимо SEO буду еще писать статьи о программировании (если будут интересные идеи).

Темой для первой статьи решил выбрать “разгадывание” капчей!

Во-первых давай подумаем зачем оно нам нужно?! Капчами сейчас защищают практически все формы заполняемые случайными посетителями. Их используют при регистрации на форумах, регистрации ящиков.. да вообще везде. А теперь представь, что ты достал большую базу каталогов ссылок на каком-то определенном движке и там для размещения ссылки нужно вводить капчу!

Если бы капчи не было, то все было бы очень просто, спамь и все. А что делать если капча есть? Да на самом деле все так же просто, только нужно еще научиться использовать сервис anti-captcha.com! Поехали…

 

Для начала нужно зарегистрироваться на сайте anti-captcha.com. Стоимость одной капчи - $0.001- ИМХО  - цена очень приятная ($1 за 1000 загрузок)

Инвайты для регистрации можно найти в комментариях к старой теме

После регистрации нужно пополнить счет и посмотреть свой ключ (дальше $key) в настройках.

Для экспериментов сделал вот такую вот простую формочку

http://myseoincome.ru/php/anticaptcha/

Форма-имитатор регистрации с капчей. Вводим любое имя и значение с капчи.

Если капчу ввели правильно, то получаем сообщение:

Привет кодер
тест пройден

В противном случае:

Вернись и введи правильный код!

Для начала нужно провести анализ полей формы.  У нас есть следующие поля:

user - имя пользователя
captcha - значение капчи
act=reg - скрытое поле

Все это нужно посылать методом POST. Картинку нам отдает скрипт img.php

Еще следует помнить, что значение капчи привязано к сессии, а значит после первого подключения нам нужно будет сохранить идентификатор сессии.

Алгоритм:

  1. Сливаем капчу (http://myseoincome.ru/php/anticaptcha/img.php) и сохраняем идентификатор сессии
  2. Отправляем капчу на разгадывание. Получаем значение
  3. Имея значение капчи и идентификатор сессии заканчиваем регистрацию

Вот так вот, все просто. Начнем.

Основная функция в скрипте - 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-шник
тест пройден

Пример может подвиснуть если антикапча перегружена, а по ответам антикапчи можно определить когда заканчиваются средства на счете или когда просто нет свободных слотов. Все это найдете на страницы документации сервиса.

Вот и все. При перепечатывании очень прошу указывать автора и этот сайт. Удачи!


Метки:  

 Страницы: [1]