ruby-2captcha 1.1.5 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec_status +16 -7
- data/.ruby-version +1 -1
- data/Gemfile.lock +5 -5
- data/README.md +403 -66
- data/README.ru.md +416 -76
- data/api_2captcha.gemspec +4 -1
- data/examples/alibaba_example.rb +16 -0
- data/examples/altcha_example.rb +12 -0
- data/examples/amazon_waf_example.rb +14 -0
- data/examples/atb_captcha_example.rb +11 -0
- data/examples/audio_example.rb +10 -0
- data/examples/basilisk_example.rb +15 -0
- data/examples/binance_example.rb +17 -0
- data/examples/canvas_example.rb +13 -0
- data/examples/captchafox_example.rb +20 -0
- data/examples/capy_example.rb +11 -0
- data/examples/cloudflare_turnstile_example.rb +15 -0
- data/examples/coordinates_example.rb +12 -0
- data/examples/cut_captcha_example.rb +11 -0
- data/examples/cyber_siara_example.rb +10 -0
- data/examples/datadome_example.rb +12 -0
- data/examples/drag_drop_example.rb +24 -0
- data/examples/friendly_captcha_example.rb +10 -0
- data/examples/funcaptcha_example.rb +10 -0
- data/examples/geetest_example.rb +12 -0
- data/examples/geetest_v4_example.rb +10 -0
- data/examples/grid_captcha_example.rb +14 -0
- data/examples/hcaptcha_example.rb +10 -0
- data/examples/hunt_example.rb +17 -0
- data/examples/key_captcha_example.rb +13 -0
- data/examples/lemin_example.rb +12 -0
- data/examples/media/drag_drop/background.jpeg +0 -0
- data/examples/media/drag_drop/image1.jpeg +0 -0
- data/examples/media/drag_drop/image2.jpeg +0 -0
- data/examples/media/example.mp3 +0 -0
- data/examples/media/normal_2.jpg +0 -0
- data/examples/media/recaptchaGrid4x4.jpg +0 -0
- data/examples/media/recaptchaGridImginstructions4x4.jpg +0 -0
- data/examples/media/temu/body.png +0 -0
- data/examples/media/temu/part1.png +0 -0
- data/examples/media/temu/part2.png +0 -0
- data/examples/media/temu/part3.png +0 -0
- data/examples/mt_captcha_example.rb +10 -0
- data/examples/normal_captcha_example.rb +11 -0
- data/examples/prosopo_example.rb +16 -0
- data/examples/recaptcha_v2_example.rb +10 -0
- data/examples/recaptcha_v3_example.rb +18 -0
- data/examples/rotate_example.rb +13 -0
- data/examples/temu_example.rb +28 -0
- data/examples/tencent_example.rb +10 -0
- data/examples/text_example.rb +10 -0
- data/examples/tspd_example.rb +19 -0
- data/examples/vkcaptcha_example.ru +10 -0
- data/examples/vkimage_example.rb +10 -0
- data/examples/yandex_example.rb +10 -0
- data/examples/yidun_example.rb +15 -0
- data/howto.txt +8 -0
- data/lib/api_2captcha/client.rb +77 -5
- data/lib/api_2captcha/version.rb +1 -1
- metadata +62 -7
data/README.ru.md
CHANGED
|
@@ -1,42 +1,69 @@
|
|
|
1
|
-
|
|
1
|
+
<a href="https://github.com/2captcha/2captcha-python"><img src="https://github.com/user-attachments/assets/37e1d860-033b-4cf3-a158-468fc6b4debc" width="82" height="30"></a>
|
|
2
|
+
<a href="https://github.com/2captcha/2captcha-javascript"><img src="https://github.com/user-attachments/assets/4d3b4541-34b2-4ed2-a687-d694ce67e5a6" width="36" height="30"></a>
|
|
3
|
+
<a href="https://github.com/2captcha/2captcha-go"><img src="https://github.com/user-attachments/assets/ab22182e-6cb2-41fa-91f4-d5e89c6d7c6f" width="63" height="30"></a>
|
|
4
|
+
<a href="https://github.com/2captcha/2captcha-ruby"><img src="https://github.com/user-attachments/assets/1c3b6dc2-9acd-44fe-927d-31de3427639f" width="75" height="30"></a>
|
|
5
|
+
<a href="https://github.com/2captcha/2captcha-cpp"><img src="https://github.com/user-attachments/assets/36de8512-acfd-44fb-bb1f-b7c793a3f926" width="45" height="30"></a>
|
|
6
|
+
<a href="https://github.com/2captcha/2captcha-php"><img src="https://github.com/user-attachments/assets/e8797843-3f61-4fa9-a155-ab0b21fb3858" width="52" height="30"></a>
|
|
7
|
+
<a href="https://github.com/2captcha/2captcha-java"><img src="https://github.com/user-attachments/assets/a3d923f6-4fec-4c07-ac50-e20da6370911" width="50" height="30"></a>
|
|
8
|
+
<a href="https://github.com/2captcha/2captcha-csharp"><img src="https://github.com/user-attachments/assets/f4d449de-780b-49ed-bb0a-b70c82ec4b32" width="38" height="30"></a>
|
|
2
9
|
|
|
3
|
-
|
|
10
|
+
# Ruby 2Captcha API Client (captcha solver)
|
|
4
11
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
- [
|
|
9
|
-
|
|
10
|
-
- [
|
|
11
|
-
|
|
12
|
-
- [
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
- [
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- [
|
|
39
|
-
- [
|
|
12
|
+
Это самый простой способ быстро интегрировать [2Captcha] в ваш код и автоматизировать решение любого типа капчи.
|
|
13
|
+
Примеры API-запросов для различных типов капч доступны на странице [Ruby captcha solver](https://2captcha.com/lang/ruby).
|
|
14
|
+
|
|
15
|
+
- [Ruby 2Captcha API Client (captcha solver)](#ruby-2captcha-api-client-captcha-solver)
|
|
16
|
+
- [Установка](#установка)
|
|
17
|
+
- [Настройка](#настройка)
|
|
18
|
+
- [Опции экземпляра клиента](#опции-экземпляра-клиента)
|
|
19
|
+
- [Решение капчи](#решение-капчи)
|
|
20
|
+
- [Обычная капча](#обычная-капча)
|
|
21
|
+
- [Текстовая капча](#текстовая-капча)
|
|
22
|
+
- [reCAPTCHA v2](#recaptcha-v2)
|
|
23
|
+
- [reCAPTCHA v3](#recaptcha-v3)
|
|
24
|
+
- [FunCaptcha](#funcaptcha)
|
|
25
|
+
- [GeeTest](#geetest)
|
|
26
|
+
- [GeeTest V4](#geetest-v4)
|
|
27
|
+
- [KeyCaptcha](#keycaptcha)
|
|
28
|
+
- [Capy](#capy)
|
|
29
|
+
- [Grid](#grid)
|
|
30
|
+
- [Canvas](#canvas)
|
|
31
|
+
- [ClickCaptcha](#clickcaptcha)
|
|
32
|
+
- [Rotate](#rotate)
|
|
33
|
+
- [Amazon WAF](#amazon-waf)
|
|
34
|
+
- [Cloudflare Turnstile](#cloudflare-turnstile)
|
|
35
|
+
- [Lemin Cropped Captcha](#lemin-cropped-captcha)
|
|
36
|
+
- [Распознавание аудио](#распознавание-аудио)
|
|
37
|
+
- [CyberSiARA](#cybersiara)
|
|
38
|
+
- [DataDome](#datadome)
|
|
39
|
+
- [MTCaptcha](#mtcaptcha)
|
|
40
|
+
- [Friendly captcha](#friendly-captcha)
|
|
41
|
+
- [Cutcaptcha](#cutcaptcha)
|
|
42
|
+
- [Tencent](#tencent)
|
|
43
|
+
- [atbCAPTCHA](#atbcaptcha)
|
|
44
|
+
- [Prosopo](#prosopo)
|
|
45
|
+
- [Captchafox](#captchafox)
|
|
46
|
+
- [Temu](#temu)
|
|
47
|
+
- [VK Captcha](#vk-captcha)
|
|
48
|
+
- [Altcha Captcha](#altcha-captcha)
|
|
49
|
+
- [Binancecaptcha](#binancecaptcha)
|
|
50
|
+
- [Hunt Captcha](#hunt-captcha)
|
|
51
|
+
- [Tspd](#tspd)
|
|
52
|
+
- [Basilisk](#basilisk)
|
|
53
|
+
- [Alibaba](#alibaba)
|
|
54
|
+
- [Yidun](#yidun)
|
|
55
|
+
- [Drag & Drop Captcha](#drag--drop-captcha)
|
|
56
|
+
- [Другие методы](#другие-методы)
|
|
57
|
+
- [send / get_result](#send--get_result)
|
|
58
|
+
- [Баланс](#баланс)
|
|
59
|
+
- [Отчет](#отчет)
|
|
60
|
+
- [Прокси](#прокси)
|
|
61
|
+
- [Обработка ошибок](#обработка-ошибок)
|
|
62
|
+
- [Примеры](#примеры)
|
|
63
|
+
- [Свяжитесь с нами](#свяжитесь-с-нами)
|
|
64
|
+
- [Присоединяйтесь к команде 👪](#join-the-team)
|
|
65
|
+
- [Лицензия](#лицензия)
|
|
66
|
+
- [Графика и товарные знаки](#графика-и-товарные-знаки)
|
|
40
67
|
|
|
41
68
|
## Установка
|
|
42
69
|
Автоматическая установка гема с помощью Bundler. Добавьте следующую строку в ваш Gemfile:
|
|
@@ -62,7 +89,7 @@ gem install ruby-2captcha
|
|
|
62
89
|
|
|
63
90
|
Описание всех необходимых параметров для настройки установленного гема.
|
|
64
91
|
|
|
65
|
-
Экземпляр класса Api2Captcha можно создать следующим образом:
|
|
92
|
+
Экземпляр класса `Api2Captcha` можно создать следующим образом:
|
|
66
93
|
|
|
67
94
|
```ruby
|
|
68
95
|
require 'api_2captcha'
|
|
@@ -70,7 +97,7 @@ require 'api_2captcha'
|
|
|
70
97
|
client = Api2Captcha.new("YOUR_API_KEY")
|
|
71
98
|
```
|
|
72
99
|
### Опции экземпляра клиента
|
|
73
|
-
У вас также есть возможность настроить некоторые параметры экземпляра Api2Captcha
|
|
100
|
+
У вас также есть возможность настроить некоторые параметры экземпляра `Api2Captcha`:
|
|
74
101
|
|
|
75
102
|
```ruby
|
|
76
103
|
client.soft_id(123)
|
|
@@ -80,28 +107,34 @@ client.default_timeout(120)
|
|
|
80
107
|
client.polling_interval(10)
|
|
81
108
|
```
|
|
82
109
|
|
|
83
|
-
|
|
110
|
+
> [!IMPORTANT]
|
|
111
|
+
> После определения обратного вызова для экземпляра, все методы возвращают только идентификатор капчи и НЕ запрашивают результат у API. Результат будет отправлен на URL обратного вызова.
|
|
112
|
+
|
|
113
|
+
Чтобы получить ответ вручную, используйте метод [get_result](#send--get_result).
|
|
84
114
|
|
|
85
115
|
## Решение капчи
|
|
86
|
-
При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно
|
|
116
|
+
При отправке любой капчи, основанной на изображении, вы можете предоставить дополнительные параметры, чтобы помочь работникам 2Captcha правильно её решить.
|
|
87
117
|
|
|
88
118
|
### Параметры капчи
|
|
89
119
|
|
|
90
|
-
| Параметр
|
|
91
|
-
|
|
92
|
-
| numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha)
|
|
93
|
-
| min_len | 0 |
|
|
94
|
-
| max_len | 0 | Максимальная длина ответа length
|
|
95
|
-
| phrase | 0 | Определяет, содержит ли ответ несколько слов или нет
|
|
96
|
-
| case_sensitive | 0 | Определяет, учитывается ли регистр в ответе
|
|
97
|
-
| calc | 0 | Определяет, требуется ли вычисление в решении капчи
|
|
120
|
+
| Параметр | Значение по умолчанию | Описание |
|
|
121
|
+
|-------------------|---------------|--------------------------------------------------------------------------------------------------------------------|
|
|
122
|
+
| numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha) |
|
|
123
|
+
| min_len | 0 | Минимальная длина ответа length |
|
|
124
|
+
| max_len | 0 | Максимальная длина ответа length |
|
|
125
|
+
| phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
|
|
126
|
+
| case_sensitive | 0 | Определяет, учитывается ли регистр в ответе |
|
|
127
|
+
| calc | 0 | Определяет, требуется ли вычисление в решении капчи |
|
|
98
128
|
| lang | - | Определяет язык капчи, см. [список поддерживаемых языков](https://2captcha.com/2captcha-api#language) |
|
|
99
|
-
| hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg
|
|
100
|
-
| hint_text | - | Подсказка или текст задания, показываемые работникам с капчей
|
|
129
|
+
| hint_image | - | Изображение с подсказкой, показываемое работникам с капчей, переведенное из параметра API instructionsimg |
|
|
130
|
+
| hint_text | - | Подсказка или текст задания, показываемые работникам с капчей |
|
|
101
131
|
|
|
102
132
|
Ниже вы найдете основные примеры для каждого типа капчи. Ознакомьтесь с кодом ниже.
|
|
103
133
|
|
|
104
134
|
### Обычная капча
|
|
135
|
+
|
|
136
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_normal_captcha)</sup>
|
|
137
|
+
|
|
105
138
|
Для обхода обычной капчи (искаженный текст на картинке) используйте следующий метод. Этот метод также может использоваться для распознавания любого текста на картинке.
|
|
106
139
|
|
|
107
140
|
```ruby
|
|
@@ -111,8 +144,11 @@ result = client.normal({
|
|
|
111
144
|
image: 'https://site-with-captcha.com/path/to/captcha.jpg'
|
|
112
145
|
})
|
|
113
146
|
```
|
|
147
|
+
|
|
114
148
|
### Текстовая капча
|
|
115
149
|
|
|
150
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_text_captcha)</sup>
|
|
151
|
+
|
|
116
152
|
Этот метод может использоваться для обхода капчи, которая требует ответить на вопрос, представленный в явном виде.
|
|
117
153
|
|
|
118
154
|
```ruby
|
|
@@ -123,6 +159,9 @@ result = client.text({
|
|
|
123
159
|
```
|
|
124
160
|
|
|
125
161
|
### reCAPTCHA v2
|
|
162
|
+
|
|
163
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_recaptchav2_new)</sup>
|
|
164
|
+
|
|
126
165
|
Используйте этот метод для решения reCAPTCHA v2 и получения токена для обхода защиты.
|
|
127
166
|
|
|
128
167
|
```ruby
|
|
@@ -134,6 +173,9 @@ result = client.recaptcha_v2({
|
|
|
134
173
|
```
|
|
135
174
|
|
|
136
175
|
### reCAPTCHA v3
|
|
176
|
+
|
|
177
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_recaptchav3)</sup>
|
|
178
|
+
|
|
137
179
|
Этот метод предоставляет решение для reCAPTCHA v3 и возвращает токен.
|
|
138
180
|
|
|
139
181
|
```ruby
|
|
@@ -147,6 +189,9 @@ result = client.recaptcha_v3({
|
|
|
147
189
|
```
|
|
148
190
|
|
|
149
191
|
### FunCaptcha
|
|
192
|
+
|
|
193
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_funcaptcha_new)</sup>
|
|
194
|
+
|
|
150
195
|
Метод решения FunCaptcha (Arkoselabs). Он возвращает токен.
|
|
151
196
|
|
|
152
197
|
```ruby
|
|
@@ -157,6 +202,9 @@ result = client.funcaptcha({
|
|
|
157
202
|
```
|
|
158
203
|
|
|
159
204
|
### GeeTest
|
|
205
|
+
|
|
206
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_geetest)</sup>
|
|
207
|
+
|
|
160
208
|
Метод для решения головоломки GeeTest captcha. Он возвращает набор токенов в формате JSON.
|
|
161
209
|
|
|
162
210
|
```ruby
|
|
@@ -168,17 +216,24 @@ result = client.geetest({
|
|
|
168
216
|
})
|
|
169
217
|
```
|
|
170
218
|
|
|
171
|
-
###
|
|
172
|
-
|
|
219
|
+
### GeeTest v4
|
|
220
|
+
|
|
221
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#geetest-v4)</sup>
|
|
222
|
+
|
|
223
|
+
Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
|
|
173
224
|
|
|
174
225
|
```ruby
|
|
175
|
-
result = client.
|
|
176
|
-
|
|
226
|
+
result = client.geetest_v4({
|
|
227
|
+
captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
|
|
177
228
|
pageurl: 'https://www.site.com/page/'
|
|
178
229
|
})
|
|
179
230
|
```
|
|
180
231
|
|
|
232
|
+
|
|
181
233
|
### KeyCaptcha
|
|
234
|
+
|
|
235
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_keycaptcha)</sup>
|
|
236
|
+
|
|
182
237
|
Метод на основе токенов для решения KeyCaptcha.
|
|
183
238
|
|
|
184
239
|
```ruby
|
|
@@ -192,6 +247,9 @@ result = client.keycaptcha({
|
|
|
192
247
|
```
|
|
193
248
|
|
|
194
249
|
### Capy
|
|
250
|
+
|
|
251
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_capy)</sup>
|
|
252
|
+
|
|
195
253
|
Метод основан на использовании токенов для обхода паззла Capy.
|
|
196
254
|
|
|
197
255
|
```ruby
|
|
@@ -203,21 +261,27 @@ result = client.capy({
|
|
|
203
261
|
```
|
|
204
262
|
|
|
205
263
|
### Grid
|
|
264
|
+
|
|
265
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#grid)</sup>
|
|
266
|
+
|
|
206
267
|
Метод сетки изначально называется методом Old ReCaptcha V2. Этот метод может быть использован для обхода любого типа капчи, где вы можете применить сетку к изображению и необходимо кликнуть по определенным ячейкам сетки. Он возвращает количество выбранных ячеек.
|
|
207
268
|
|
|
208
269
|
```ruby
|
|
209
270
|
result = client.grid({
|
|
210
271
|
image: 'path/to/captcha.jpg',
|
|
211
|
-
|
|
212
|
-
|
|
272
|
+
recaptcharows: 3,
|
|
273
|
+
recaptchacols: 3,
|
|
213
274
|
previous_id: 0,
|
|
214
275
|
lang: 'en',
|
|
215
|
-
|
|
216
|
-
|
|
276
|
+
imginstructions: 'path/to/hint.jpg',
|
|
277
|
+
textinstructions: 'Select all images with an Orange'
|
|
217
278
|
})
|
|
218
279
|
```
|
|
219
280
|
|
|
220
281
|
### Canvas
|
|
282
|
+
|
|
283
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#canvas)</sup>
|
|
284
|
+
|
|
221
285
|
Метод Canvas может быть использован, когда вам необходимо нарисовать линию вокруг объекта на изображении. Он возвращает набор координат точек для рисования многоугольника.
|
|
222
286
|
|
|
223
287
|
```ruby
|
|
@@ -231,6 +295,9 @@ result = client.canvas({
|
|
|
231
295
|
```
|
|
232
296
|
|
|
233
297
|
### ClickCaptcha
|
|
298
|
+
|
|
299
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#coordinates)</sup>
|
|
300
|
+
|
|
234
301
|
Метод ClickCaptcha возвращает координаты точек на изображении капчи. Может быть использован, если вам необходимо кликнуть по определенным точкам на изображении.
|
|
235
302
|
|
|
236
303
|
```ruby
|
|
@@ -243,6 +310,9 @@ result = client.coordinates({
|
|
|
243
310
|
```
|
|
244
311
|
|
|
245
312
|
### Rotate
|
|
313
|
+
|
|
314
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#solving_rotatecaptcha)</sup>
|
|
315
|
+
|
|
246
316
|
Этот метод может быть использован для решения капчи, которая просит повернуть объект. В основном используется для обхода FunCaptcha. Он возвращает угол поворота.
|
|
247
317
|
|
|
248
318
|
```ruby
|
|
@@ -257,7 +327,10 @@ result = client.rotate({
|
|
|
257
327
|
|
|
258
328
|
|
|
259
329
|
### Lemin Cropped Captcha
|
|
260
|
-
|
|
330
|
+
|
|
331
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#lemin)</sup>
|
|
332
|
+
|
|
333
|
+
Используйте этот метод для решения задания Lemin. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
|
|
261
334
|
|
|
262
335
|
```ruby
|
|
263
336
|
result = client.lemin({
|
|
@@ -270,6 +343,9 @@ result = client.lemin({
|
|
|
270
343
|
|
|
271
344
|
|
|
272
345
|
### Cloudflare Turnstile
|
|
346
|
+
|
|
347
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#turnstile)</sup>
|
|
348
|
+
|
|
273
349
|
Используйте этот метод для решения задачи Cloudflare Turnstile. Он возвращает JSON с токеном.
|
|
274
350
|
|
|
275
351
|
```ruby
|
|
@@ -280,6 +356,9 @@ result = client.turnstile({
|
|
|
280
356
|
```
|
|
281
357
|
|
|
282
358
|
### Amazon WAF
|
|
359
|
+
|
|
360
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#amazon-waf)</sup>
|
|
361
|
+
|
|
283
362
|
Используйте этот метод для решения Captcha Amazon WAF, также известного как AWS WAF Captcha, который является частью интеллектуальной защиты от угроз для Amazon AWS. Он возвращает JSON с токеном.
|
|
284
363
|
|
|
285
364
|
```ruby
|
|
@@ -293,27 +372,25 @@ result = client.amazon_waf({
|
|
|
293
372
|
})
|
|
294
373
|
```
|
|
295
374
|
|
|
296
|
-
###
|
|
297
|
-
Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
|
|
375
|
+
### Распознавание аудио
|
|
298
376
|
|
|
299
|
-
|
|
300
|
-
result = client.geetest_v4({
|
|
301
|
-
captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
|
|
302
|
-
pageurl: 'https://www.site.com/page/'
|
|
303
|
-
})
|
|
304
|
-
```
|
|
377
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#audio)</sup>
|
|
305
378
|
|
|
306
|
-
|
|
307
|
-
|
|
379
|
+
Этот метод можно использовать как для решения аудио капчи, так и для распознавания любой аудиозаписи.
|
|
380
|
+
|
|
381
|
+
Поддерживаемые языки: "en", "ru", "de", "el", "pt", "fr".
|
|
308
382
|
|
|
309
383
|
```ruby
|
|
310
384
|
result = client.audio({
|
|
311
|
-
audio: 'path/to/audio.
|
|
385
|
+
audio: 'path/to/audio.mp3',
|
|
312
386
|
lang: "en"
|
|
313
387
|
})
|
|
314
388
|
```
|
|
315
389
|
|
|
316
390
|
### CyberSiARA
|
|
391
|
+
|
|
392
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#cybersiara)</sup>
|
|
393
|
+
|
|
317
394
|
Метод решения CyberSiARA. Он возвращает токен для обхода капчи.
|
|
318
395
|
|
|
319
396
|
```ruby
|
|
@@ -324,8 +401,13 @@ result = client.cyber_siara({
|
|
|
324
401
|
```
|
|
325
402
|
|
|
326
403
|
### DataDome
|
|
327
|
-
|
|
328
|
-
|
|
404
|
+
|
|
405
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#datadome)</sup>
|
|
406
|
+
|
|
407
|
+
Метод решения DataDome вернет `cookies` для обхода капчи.
|
|
408
|
+
|
|
409
|
+
> [!IMPORTANT]
|
|
410
|
+
> Чтобы решить капчу DataDome вы должны обязательно использовать прокси. Рекомендуется использовать [резидентные прокси].
|
|
329
411
|
|
|
330
412
|
```ruby
|
|
331
413
|
result = client.data_dome({
|
|
@@ -338,6 +420,9 @@ result = client.data_dome({
|
|
|
338
420
|
|
|
339
421
|
|
|
340
422
|
### MTCaptcha
|
|
423
|
+
|
|
424
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#mtcaptcha)</sup>
|
|
425
|
+
|
|
341
426
|
Метод решения MTCaptcha. Он возвращает токен для обхода капчи.
|
|
342
427
|
|
|
343
428
|
```ruby
|
|
@@ -349,8 +434,14 @@ result = client.mt_captcha({
|
|
|
349
434
|
|
|
350
435
|
|
|
351
436
|
### Friendly captcha
|
|
437
|
+
|
|
438
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#friendly-captcha)</sup>
|
|
439
|
+
|
|
352
440
|
Метод решения Friendly captcha. Он возвращает токен для обхода капчи.
|
|
353
441
|
|
|
442
|
+
> [!IMPORTANT]
|
|
443
|
+
> Чтобы успешно использовать полученный токен, виджет капчи не должен быть загружен на странице. Для этого необходимо прервать запрос к `/friendlycaptcha/...module.min.js` на странице. Если виджет капчи уже загружен на странице, существует высокая вероятность, что полученный токен не будет работать.
|
|
444
|
+
|
|
354
445
|
```ruby
|
|
355
446
|
result = client.friendly({
|
|
356
447
|
pageurl: "https://example.com",
|
|
@@ -358,8 +449,10 @@ result = client.friendly({
|
|
|
358
449
|
})
|
|
359
450
|
```
|
|
360
451
|
|
|
361
|
-
|
|
362
452
|
### Cutcaptcha
|
|
453
|
+
|
|
454
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#cutcaptcha)</sup>
|
|
455
|
+
|
|
363
456
|
Метод решения Cutcaptcha. Он возвращает токен для обхода капчи.
|
|
364
457
|
|
|
365
458
|
```ruby
|
|
@@ -370,6 +463,222 @@ result = client.cutcaptcha({
|
|
|
370
463
|
})
|
|
371
464
|
```
|
|
372
465
|
|
|
466
|
+
### Tencent
|
|
467
|
+
|
|
468
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#tencent)</sup>
|
|
469
|
+
|
|
470
|
+
Основанный на токенах метод автоматизированного решения капчи Tencent.
|
|
471
|
+
```ruby
|
|
472
|
+
result = client.tencent({
|
|
473
|
+
app_id: "197326679",
|
|
474
|
+
pageurl: "https://mysite.com/page/with/tencent"
|
|
475
|
+
})
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### atbCAPTCHA
|
|
479
|
+
|
|
480
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#atb-captcha)</sup>
|
|
481
|
+
|
|
482
|
+
Основанный на токенах метод автоматизированного решения капчи atbCAPTCHA.
|
|
483
|
+
```ruby
|
|
484
|
+
result = client.atb_captcha({
|
|
485
|
+
app_id: "197326679",
|
|
486
|
+
api_server: "api.atb_captcha.com",
|
|
487
|
+
pageurl: "https://mysite.com/page/with/atb_captcha"
|
|
488
|
+
})
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### Prosopo
|
|
492
|
+
|
|
493
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#prosopo-procaptcha)</sup>
|
|
494
|
+
|
|
495
|
+
Основанный на токенах метод автоматизированного решения капчи Prosopo.
|
|
496
|
+
|
|
497
|
+
```ruby
|
|
498
|
+
result = client.prosopo({
|
|
499
|
+
pageurl: "https://www.twickets.live/",
|
|
500
|
+
sitekey: "5EZVvsHMrKCFKp5NYNoTyDjTjetoVo1Z4UNNbTwJf1GfN6Xm"
|
|
501
|
+
})
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
### Captchafox
|
|
505
|
+
|
|
506
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#captchafox)</sup>
|
|
507
|
+
|
|
508
|
+
Основанный на токенах метод автоматизированного решения капчи Captchafox.
|
|
509
|
+
|
|
510
|
+
```ruby
|
|
511
|
+
result = client.captchafox({
|
|
512
|
+
sitekey: "sitekey",
|
|
513
|
+
pageurl: "https://pageurl/",
|
|
514
|
+
api_server: "https://mam.example.com",
|
|
515
|
+
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/131.0.0.0 Safari/537.36",
|
|
516
|
+
proxytype: "socks5",
|
|
517
|
+
proxy: "proxyuser:strongPassword@123.123.123.123:3128"
|
|
518
|
+
})
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
### Temu
|
|
522
|
+
|
|
523
|
+
<sup>[API method description.](https://2captcha.com/2captcha-api#temucaptcha)</sup>
|
|
524
|
+
|
|
525
|
+
Основанный на токенах метод автоматизированного решения капчи Temu.
|
|
526
|
+
|
|
527
|
+
```ruby
|
|
528
|
+
result = client.temu({
|
|
529
|
+
body: bodyStr,
|
|
530
|
+
part1: part1Str,
|
|
531
|
+
part2: part2Str,
|
|
532
|
+
part3: part3Str,
|
|
533
|
+
### VK Image
|
|
534
|
+
|
|
535
|
+
<sup>[API описание метода.](https://2captcha.com/2captcha-api#vkcaptcha)</sup>
|
|
536
|
+
|
|
537
|
+
Мы используем текст (изображение в формате base64) или файл (изображение как файл) и параметры steps.
|
|
538
|
+
Вы можете получить оба значения из ответа на запрос https://api.vk.com/method/captchaNotRobot.getContent?v={API_VER} при загрузке виджета captcha на страницу.
|
|
539
|
+
|
|
540
|
+
```ruby
|
|
541
|
+
result = client.vkimage({
|
|
542
|
+
image: '/9j/4AAQSkZJRgABAQAAAQABAAD/2...',
|
|
543
|
+
steps: '[5,19,14,14,6,4,8...]'
|
|
544
|
+
})
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
### VK Captcha
|
|
548
|
+
|
|
549
|
+
<sup>[API описание метода.](https://2captcha.com/2captcha-api#vkcaptcha)</sup>
|
|
550
|
+
|
|
551
|
+
Для метода, основанного на токенах, требуется параметр `redirect_uri`, а также прокси-сервер и UserAgent. Значение параметра `redirect_uri` можно найти в ответах на запросы к VK API, которые возвращают captcha.
|
|
552
|
+
|
|
553
|
+
```ruby
|
|
554
|
+
result = client.vkcaptcha({
|
|
555
|
+
redirect_uri: 'https://id.vk.com/not_robot_captcha?domain=vk.com&session_token=eyJ....HGsc5B4LyvjA&variant=popup&blank=1',
|
|
556
|
+
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
|
|
557
|
+
})
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
### Altcha Captcha
|
|
561
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#altchacaptcha)</sup>
|
|
562
|
+
|
|
563
|
+
Используйте этот метод для решения капчи Altcha. В ответ возвращается токен.
|
|
564
|
+
|
|
565
|
+
```ruby
|
|
566
|
+
result = client.altcha({
|
|
567
|
+
pageurl: 'https://mysite.com/page/with/altcha',
|
|
568
|
+
challenge: '{"algorithm":"SHA-256","challenge":"a4c9d8e7f1b23a6c...","signature":"7b3e2a9d5c8f1046e2d91c3a..."}'
|
|
569
|
+
# или:
|
|
570
|
+
# challenge_url: 'https://example.com/altcha-challenge'
|
|
571
|
+
})
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
### Binancecaptcha
|
|
575
|
+
|
|
576
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#binance)</sup>
|
|
577
|
+
|
|
578
|
+
Используйте этот метод для решения капчи Binancecaptcha. В ответ возвращается токен.
|
|
579
|
+
|
|
580
|
+
```ruby
|
|
581
|
+
result = client.binance({
|
|
582
|
+
sitekey => "login",
|
|
583
|
+
url => "https://example.com/page-with-binance",
|
|
584
|
+
validate_id => "cb0bfef...e54ecd57b"
|
|
585
|
+
})
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### Hunt Captcha
|
|
589
|
+
|
|
590
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#hunt)</sup>
|
|
591
|
+
|
|
592
|
+
Основанный на токенах метод автоматизированного решения Hunt captcha. Использует двухшаговый процесс: первый запрос без `data` возвращает X-HD fingerprint; после отправки его на сайт и получения `meta.token` второй запрос с `data` возвращает финальный токен.
|
|
593
|
+
|
|
594
|
+
> [!IMPORTANT]
|
|
595
|
+
> Для решения Hunt captcha необходимо использовать прокси. Рекомендуется использовать [резидентные прокси].
|
|
596
|
+
|
|
597
|
+
```ruby
|
|
598
|
+
result = client.hunt({
|
|
599
|
+
pageurl: "https://example.com/page-with-hunt",
|
|
600
|
+
api_get_lib: "https://example.com/hd-api/external/apps/app-id/api.js",
|
|
601
|
+
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
|
|
602
|
+
proxytype: "http",
|
|
603
|
+
proxy: "proxyuser:strongPassword@123.123.123.123:3128"
|
|
604
|
+
})
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
### Tspd
|
|
608
|
+
|
|
609
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#tspd)</sup>
|
|
610
|
+
|
|
611
|
+
Используйте этот метод для решения капчи TSPD. В ответ возвращаются cookies. Прокси обязателен — режима без прокси не существует.
|
|
612
|
+
|
|
613
|
+
> [!IMPORTANT]
|
|
614
|
+
> Для решения TSPD captcha необходимо использовать прокси. Один и тот же IP-адрес должен использоваться на всех этапах: получение cookies, решение задачи и использование результата.
|
|
615
|
+
|
|
616
|
+
```ruby
|
|
617
|
+
result = client.tspd({
|
|
618
|
+
pageurl: "https://example.com/page-with-tspd",
|
|
619
|
+
tspd_cookie: "TS...",
|
|
620
|
+
html_page_base64: "PGh0bWw+...",
|
|
621
|
+
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36",
|
|
622
|
+
proxytype: "http",
|
|
623
|
+
proxy: "proxyuser:strongPassword@123.123.123.123:3128"
|
|
624
|
+
})
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
### Basilisk
|
|
628
|
+
|
|
629
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#basilisk)</sup>
|
|
630
|
+
|
|
631
|
+
Основанный на токенах метод автоматизированного решения капчи Basilisk.
|
|
632
|
+
|
|
633
|
+
```ruby
|
|
634
|
+
result = client.basilisk({
|
|
635
|
+
pageurl: "https://example.com/page-with-basilisk",
|
|
636
|
+
sitekey: "SITE_KEY"
|
|
637
|
+
})
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
### Alibaba
|
|
641
|
+
|
|
642
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#alibaba)</sup>
|
|
643
|
+
|
|
644
|
+
Основанный на токенах метод автоматизированного решения капчи Alibaba.
|
|
645
|
+
|
|
646
|
+
```ruby
|
|
647
|
+
result = client.alibaba({
|
|
648
|
+
pageurl: "https://example.com/page-with-alibaba",
|
|
649
|
+
scene_id: "SCENE_ID",
|
|
650
|
+
prefix: "PREFIX"
|
|
651
|
+
})
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
### Yidun
|
|
655
|
+
|
|
656
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#yidun)</sup>
|
|
657
|
+
|
|
658
|
+
Основанный на токенах метод автоматизированного решения капчи Yidun.
|
|
659
|
+
|
|
660
|
+
```ruby
|
|
661
|
+
result = client.yidun({
|
|
662
|
+
pageurl: "https://example.com/page-with-yidun",
|
|
663
|
+
sitekey: "SITE_KEY"
|
|
664
|
+
})
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
### Drag & Drop Captcha
|
|
668
|
+
|
|
669
|
+
<sup>[Описание метода API](https://2captcha.com/2captcha-api#drag-and-drop-captcha)</sup>
|
|
670
|
+
|
|
671
|
+
Используйте этот метод для решения капч, где одну или несколько картинок нужно перетащить на определённые позиции фонового изображения. `body` — фоновое изображение, `images` — массив изображений для перетаскивания, оба в Base64 — файлы нужно прочитать и закодировать самостоятельно, как показано ниже. Порядок `images` важен: в ответе используется тот же порядок.
|
|
672
|
+
|
|
673
|
+
В ответе приходит строка с координатами для каждой картинки из `images`, разделёнными `|`. Если картинку двигать не нужно, для неё возвращается буквальное значение `null`.
|
|
674
|
+
|
|
675
|
+
```ruby
|
|
676
|
+
result = client.drag_drop({
|
|
677
|
+
body: bodyStr,
|
|
678
|
+
images: [image1Str, image2Str],
|
|
679
|
+
textinstructions: "Drag the images to proper position"
|
|
680
|
+
})
|
|
681
|
+
```
|
|
373
682
|
|
|
374
683
|
## Другие методы
|
|
375
684
|
|
|
@@ -395,6 +704,9 @@ time.sleep(20)
|
|
|
395
704
|
result = client.get_result(captcha_id)
|
|
396
705
|
```
|
|
397
706
|
### Баланс
|
|
707
|
+
|
|
708
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#additional-methods)</sup>
|
|
709
|
+
|
|
398
710
|
Используйте этот метод, чтобы посмотреть баланс в вашем аккаунте.
|
|
399
711
|
|
|
400
712
|
```ruby
|
|
@@ -402,6 +714,9 @@ balance = client.get_balance
|
|
|
402
714
|
```
|
|
403
715
|
|
|
404
716
|
### Отчет
|
|
717
|
+
|
|
718
|
+
<sup>[Описание метода API.](https://2captcha.com/2captcha-api#complain)</sup>
|
|
719
|
+
|
|
405
720
|
Используйте этот метод для отправки отчета о правильном или неправильном ответе на капчу.
|
|
406
721
|
|
|
407
722
|
```ruby
|
|
@@ -411,7 +726,7 @@ client.report(captcha_id, False) # капча решена неправильн
|
|
|
411
726
|
|
|
412
727
|
## Прокси
|
|
413
728
|
|
|
414
|
-
Вы можете передать свой прокси-сервер в качестве дополнительного аргумента для методов: recaptcha, funcaptcha, geetest, geetest v4,
|
|
729
|
+
Вы можете передать свой прокси-сервер в качестве дополнительного аргумента для методов: recaptcha, funcaptcha, geetest, geetest v4, keycaptcha, capy puzzle, lemin, turnstile, amazon waf, Cutcaptcha, Friendly captcha, MTCaptcha, DataDome, CyberSiARA и других. Передынный Прокси-сервер будет перенаправлен в API и будет использован для загрузки капчи.
|
|
415
730
|
|
|
416
731
|
У нас есть свои собственные прокси-серверы, которые мы можем вам предложить. [Купить резидентские прокси] чтобы избежать ограничений и блокировок. [Быстрый старт].
|
|
417
732
|
|
|
@@ -448,7 +763,32 @@ result = client.recaptcha_v2({
|
|
|
448
763
|
end
|
|
449
764
|
```
|
|
450
765
|
|
|
766
|
+
## Примеры
|
|
767
|
+
|
|
768
|
+
Примеры решения поддерживаемых типов капчи находятся в директории [examples].
|
|
769
|
+
|
|
770
|
+
## Свяжитесь с нами
|
|
771
|
+
|
|
772
|
+
<a href="mailto:support@2captcha.com"><img src="https://github.com/user-attachments/assets/539df209-7c85-4fa5-84b4-fc22ab93fac7" width="80" height="30"></a>
|
|
773
|
+
<a href="https://2captcha.com/support/tickets/new"><img src="https://github.com/user-attachments/assets/be044db5-2e67-46c6-8c81-04b78bd99650" width="81" height="30"></a>
|
|
774
|
+
|
|
775
|
+
<h2 id='join-the-team'>Присоединяйтесь к команде 👪</h2>
|
|
776
|
+
|
|
777
|
+
Есть много способов внести свой вклад, и разработка - лишь один из них! Найдите свою следующую работу. Открытые вакансии: AI experts, scrapers, developers, technical support, и многое другое! 😍
|
|
778
|
+
|
|
779
|
+
<a href="mailto:job@2captcha.com"><img src="https://github.com/user-attachments/assets/36d23ef5-7866-4841-8e17-261cc8a4e033" width="80" height="30"></a>
|
|
780
|
+
|
|
781
|
+
## Лицензия
|
|
782
|
+
|
|
783
|
+
Код в этом репозитории лицензируется по лицензии MIT. Более подробную информацию см. в файле [LICENSE](./LICENSE).
|
|
784
|
+
|
|
785
|
+
### Графика и товарные знаки
|
|
786
|
+
|
|
787
|
+
Графика и товарные знаки, включенные в этот репозиторий, не подпадают под действие лицензии MIT. За разрешениями на использование этих материалов обращайтесь в <a href="mailto:support@2captcha.com">службу поддержки</a>.
|
|
788
|
+
|
|
451
789
|
<!-- Shared links -->
|
|
452
790
|
[2Captcha]: https://2captcha.com/
|
|
453
791
|
[Купить резидентские прокси]: https://2captcha.com/proxy/residential-proxies
|
|
454
|
-
[Быстрый старт]: https://2captcha.com/proxy?openAddTrafficModal=true
|
|
792
|
+
[Быстрый старт]: https://2captcha.com/proxy?openAddTrafficModal=true
|
|
793
|
+
[резидентные прокси]: https://2captcha.com/proxy/residential-proxies
|
|
794
|
+
[examples]: ./examples/
|