Решение ReCaptcha - solverecaptcha.com

описание предложения любых ваших любые товаров, услуг и просто подарков
Ответить
Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Решение ReCaptcha - solverecaptcha.com

Сообщение bigfozzy » 22 янв 2018, 10:56

Может кому пригодится - http://www.solverecaptcha.com/, как решать рекапчу

lib/SolveRecaptcha.php:
<?php
/*
File: SolveRecaptcha.php
Date: 16/01/2018
Version 1.0
Author: Glenn Prialde
Copyright Solve Recaptcha http://www.solverecaptcha.com 2018.  All rights reserved.


Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* You must provide a link back to http://www.solverecaptcha.com on the site on which this software is used.
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer 
in the documentation and/or other materials provided with the distribution.
* Neither the name of the HenryRanch LCC nor the names of its contributors nor authors may be used to endorse or promote products derived 
from this software without specific prior written permission.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
THE AUTHORS, OWNERS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
DEALINGS IN THE SOFTWARE.  
*/

class SolveRecaptcha {

	private $host = 'api.solverecaptcha.com';
	private $uid = null;
	private $key = null;		
	private $port = 80;
	private $remoteFile = "/index.php";
	private $basicAuthUsernameColonPassword = "";
	private $bufferSize = 2048;
	private $mode = "get";
	private $fromEmail = "admin@solverecaptcha.com";
	private $postData = "";
	private $localFile = "";
	private $proxy_host = "";
	private $proxy_port = "";
	private $is_proxy = 0;
	
	public function __construct($uid, $key) {
		$this->uid = $uid;
		$this->key = $key;
	}	

	public function solve($google_site_key, $page_url) { 
		$url = 'http://api.solverecaptcha.com/index.php?sitekey=' . $google_site_key . '&pageurl=' . urlencode($page_url) . '&key=' . $this->key . '&user_id=' . $this->uid;

		if ($this->is_proxy == 1) {
			$ret = $this->_get_request($url, $this->proxy_host, $this->proxy_port);
		} else {
			$ret = $this->_get_request($url, null, null);
		}		
		
		return $ret;
	}		
	
	public function set_proxy($host, $port) {
		$this->proxy_host = $host;
		$this->proxy_port = $port;
		$this->is_proxy = 1;
	}
	
	private function _get_request($url, $proxy_host = null, $proxy_port = null) {			
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HEADER, FALSE);					
		curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);	
		curl_setopt($ch, CURLOPT_USERAGENT,  "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8");
		curl_setopt($ch, CURLOPT_POST, FALSE);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
		curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
		curl_setopt($ch, CURLOPT_TIMEOUT, 60);
		curl_setopt($ch, CURLOPT_TCP_NODELAY, TRUE);
		
		if ($proxy_host != null && $proxy_port != null) {			
			$proxy = $proxy_host . ":" . $proxy_port;
			curl_setopt($ch, CURLOPT_PROXY, $proxy);
		}				
		
		$response = curl_exec($ch);
		curl_close($ch);
		
		return $response;		
	}	
}

?>

example:
<?php
	include ('lib/SolveRecaptcha.php');
	
	$key = "[<YOUR API KEY]"; // Get your own key at http://www.solverecaptcha.com/amember/signup
	$uid = "[<YOUR USER_ID]"; // Get your own user_id at http://www.solverecaptcha.com/amember/signup
	
	$api = new SolveRecaptcha($uid, $key);	
	
	// Solve Google's reCAPTCHA version 2
	print $api->solve('6LcT6wATAAAAAMBYUbtdHChwcLt3kaoBpvICxdDj', 'https://www.isnare.com/login.php');
?>

Ruslan
Сообщения: 5
Зарегистрирован: 31 янв 2018, 14:57

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Ruslan » 01 фев 2018, 07:18

Добрый день.

Уважаемые друзья.

На сегодняшний уменя стоит задача по captca. Мне необходимо сделать скриншот капчи в папку, так как при сохранении капча даёт другие значения. По скриншоту распознать капчу с помощью антигейт и ввести в поле. Я не много запутался в алгаритме по обходу капчи. Не могли бы вы да мне направление пожалуйста.

Буду благодарен за ответ.

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Support » 01 фев 2018, 14:18

http://humanemulator.net/objects/DOM/a_common.php#save

Для того что бы сделать скриншот любого элемента в том числе и картинки можно использовать команды типа screenshot_by_*

Сохранить (сделать скриншот) элемент

screenshot_by_number – скриншот, используя номер
screenshot_by_name – скриншот, используя имя
screenshot_by_src – скриншот, используя src
screenshot_by_attribute – скриншот, используя значение атрибута

И уже сохранённые отправлять в сервис распознавания. C помощью функций распознавания, например:

http://humanemulator.net/objects/DOM/im ... aptcha.php

recognize_by_anticaptcha($url,$file,$key,$path=’http://antigate.com’,$is_verbose = true, $rtimeout = 5, $mtimeout = 120, $is_phrase = 0, $is_regsense = 0, $is_numeric = 0, $min_len = 0, $max_len = 0,$frame=-1,$is_rusian=0); - данная функция используется для распознавания картинки как каптчи сервисом 'anticaptcha'

Функция на вход принимает параметры:

$url – это урл картинки если задан пустой (“”) то картинка берётся из указанного файла
$file – файл с картинкой, в зависимости от значения параметра $url, используется как хранилище или источник картинки
$key – ключ(идентификатор) пользователя
$path – задаём путь к серверу
$is_verbose – отражать в окне отладки процесс распознания капчи
$rtimeout – задержка между опросами статуса капчи
$mtimeout – время ожидания ввода капчи
$is_phrase – 0 либо 1 – флаг “в капче 2 и более слов”
$is_regsense – 0 либо 1 – флаг “регистр букв в капче имеет значение”
$is_numeric – 0 либо 1 – флаг “капча состоит только из цифр”
$min_len – 0 (без ограничений), любая другая цифра указывает минимальную длину текста капчи
$max_len – 0 (без ограничений), любая другая цифра указывает максимальную длину текста капчи
$frame – 1 - номер фрейма с картинкой
$is_russian – 1 - для распознания рускоязычными пользователями

Ruslan
Сообщения: 5
Зарегистрирован: 31 янв 2018, 14:57

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Ruslan » 01 фев 2018, 15:18

Спасибо большое.

Ruslan
Сообщения: 5
Зарегистрирован: 31 янв 2018, 14:57

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Ruslan » 07 фев 2018, 12:51

Добрый день.

Уважаемые друзья.

На данный момент я столкнулся с такой ошибкой CURL returned error: Failed to connect to anti-captcha.com port 443: Timed out.

Не могли вы дать мне направление в какую сторону копать. Мой код
($image->screenshot_by_number("C:\\apps\\test.jpg",3)."\n";
$anticapcha->api_key="key"; // ключ антигейт
$anticapcha->recognize("C:\\apps\\test.jpg", $anticapcha->api_key, "https://anti-captcha.com");)

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Support » 07 фев 2018, 13:52

В какой версии программы вы работаете ?

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

Ruslan
Сообщения: 5
Зарегистрирован: 31 янв 2018, 14:57

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Ruslan » 07 фев 2018, 14:58

HumanEmulator 4.10.14

Аватара пользователя
Support
Site Admin
Сообщения: 1000
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Support » 07 фев 2018, 16:56

Ruslan писал(а):
07 фев 2018, 14:58
HumanEmulator 4.10.14
У вас проблема в том что нет соединения с антикапчей.

Вот скрипт из папки с примерами:

// API ключ
$anticapcha->api_key="ваш ключ";

// 1 
echo "1. Перейдем на полигон : ";
echo $browser->navigate("http://www.humanemulator.net/poligon/image.html")."<br>";

// 2 
echo "2. Распознать каптчу используя сервис anti-capcha.com (как цифры) : ";
echo $image->screenshot_by_src("tmp/1.jpg","captcha.jpg",false)." ";
$anticapcha->is_numeric=1; // результат - цифра
$anticapcha->min_len=5; // минимальная длина результата
$anticapcha->max_len=5; // максимальная длина результата
echo $anticapcha->recognize_image($debug->get_cur_script_folder()."tmp\\1.jpg")."\n";

Возвращает в окно отладки следующее:

1. Перейдем на полигон : 1
2. Распознать каптчу используя сервис anti-capcha.com (как цифры) : 1 OK|74151251
captcha sent, got captcha ID 74151251
waiting for 5 seconds
88823

Документация по объекту http://humanemulator.net/objects/WEB/anticaptcha.php


Попробуйте не задавать путь к сервису распознавания, то есть что бы было :
echo $anticapcha->recognize_image($debug->get_cur_script_folder()."tmp\\1.jpg")

Ну и не забыть остальные настройки задать в зависимости от типа разгадываемой капчи.

Ruslan
Сообщения: 5
Зарегистрирован: 31 янв 2018, 14:57

Re: Решение ReCaptcha - solverecaptcha.com

Сообщение Ruslan » 08 фев 2018, 07:31

Добрый день.
Спасибо.

Как включить в humanemulatore работу с прокси сервером?


Ответить