ruby-2captcha 1.1.3 → 1.1.5
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/README.md +68 -19
- data/README.ru.md +106 -25
- data/lib/api_2captcha/client.rb +12 -4
- data/lib/api_2captcha/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94adc4930618e4ff87a67f2863b7bcafdde25e41907547b8a5ed95d95bd20708
|
4
|
+
data.tar.gz: c98061247be1c224ebd09271a25bcca3e00dd010d6c2b698e2a5a931d1fbfb34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c02f909803243426c91c9b908595717dba50e837d517f8260d0ffca48999cb02c098211bc3144c04c39314cf5a5617d085143b90d91cffa46b888b12d1624b29
|
7
|
+
data.tar.gz: 44bfc875ace31d895ff44b4d826250ab62af899ddf32a87b34b0b640f7dd83a9f0a40efac8e9babe1610121be9181921faf850322f22d1da6e611c7d5a5d09ba
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Ruby 2Captcha API Client
|
2
2
|
|
3
|
-
This is the easiest way to quickly integrate 2Captcha into your code and automate solving of any type of captcha.
|
3
|
+
This is the easiest way to quickly integrate [2Captcha] into your code and automate solving of any type of captcha.
|
4
4
|
|
5
5
|
A Ruby client for the 2Captcha API.
|
6
6
|
|
@@ -13,6 +13,7 @@ A Ruby client for the 2Captcha API.
|
|
13
13
|
- [reCAPTCHA v2](#recaptcha-v2)
|
14
14
|
- [reCAPTCHA v3](#recaptcha-v3)
|
15
15
|
- [reCAPTCHA Enterprise](#recaptcha-enterprise)
|
16
|
+
- [FunCaptcha](#funcaptcha)
|
16
17
|
- [GeeTest](#geetest)
|
17
18
|
- [hCaptcha](#hcaptcha)
|
18
19
|
- [KeyCaptcha](#keycaptcha)
|
@@ -27,14 +28,17 @@ A Ruby client for the 2Captcha API.
|
|
27
28
|
- [GeeTest V4](#geetest-v4)
|
28
29
|
- [Audio](#audio)
|
29
30
|
- [Yandex](#yandex)
|
30
|
-
- [CyberSiARA](#
|
31
|
-
- [DataDome](#
|
31
|
+
- [CyberSiARA](#cybersiara)
|
32
|
+
- [DataDome](#datadome)
|
32
33
|
- [MTCaptcha](#mtcaptcha)
|
34
|
+
- [Friendly captcha](#friendly-captcha)
|
35
|
+
- [Cutcaptcha](#cutcaptcha)
|
33
36
|
- [Other methods](#other-methods)
|
34
|
-
- [send / get_result](#send--
|
37
|
+
- [send / get_result](#send--get_result)
|
35
38
|
- [balance](#balance)
|
36
39
|
- [report](#report)
|
37
|
-
|
40
|
+
- [Proxies](#proxies)
|
41
|
+
- [Error handling](#error-handling)
|
38
42
|
|
39
43
|
## Installation
|
40
44
|
Add this line to your application's Gemfile:
|
@@ -71,15 +75,15 @@ client.api_key = "YOUR_API_KEY"
|
|
71
75
|
|
72
76
|
### Client instance options
|
73
77
|
|
74
|
-
|Option|Default value|Description|
|
75
|
-
|
76
|
-
|soft_id
|
77
|
-
|callback
|
78
|
-
|default_timeout|120|Timeout in seconds for all captcha types except reCAPTCHA. Defines how long the module tries to get the answer from `res.php` API endpoint|
|
79
|
-
|polling_interval|10|Interval in seconds between requests to `res.php` API endpoint, setting values less than 5 seconds is not recommended|
|
78
|
+
|Option |Default value|Description |
|
79
|
+
|----------------|-------------|------------------------------------------------------------------------|
|
80
|
+
|soft_id |- |your software ID obtained after publishing in [2captcha sofware catalog]|
|
81
|
+
|callback |- |URL of your web-sever that receives the captcha recognition result. The URl should be first registered in [pingback settings] of your account|
|
82
|
+
|default_timeout |120 |Timeout in seconds for all captcha types except reCAPTCHA. Defines how long the module tries to get the answer from `res.php` API endpoint|
|
83
|
+
|polling_interval|10 |Interval in seconds between requests to `res.php` API endpoint, setting values less than 5 seconds is not recommended|
|
80
84
|
|
81
85
|
> **IMPORTANT:** once `callback` is defined for `Client` instance, all methods return only the captcha ID and DO NOT poll the API to get the result. The result will be sent to the callback URL.
|
82
|
-
To get the answer manually use [get_result method](#send--
|
86
|
+
To get the answer manually use [get_result method](#send--get_result)
|
83
87
|
|
84
88
|
## Solve captcha
|
85
89
|
When you submit any image-based captcha use can provide additional options to help 2captcha workers to solve it properly.
|
@@ -87,15 +91,15 @@ When you submit any image-based captcha use can provide additional options to he
|
|
87
91
|
### Captcha options
|
88
92
|
| Option | Default Value | Description |
|
89
93
|
| ------------- | ------------- | -------------------------------------------------------------------------------------------------- |
|
90
|
-
| numeric | 0 | Defines if captcha contains numeric or other symbols [see more info in the API docs][
|
91
|
-
| min_len
|
92
|
-
| max_len
|
94
|
+
| numeric | 0 | Defines if captcha contains numeric or other symbols [see more info in the API docs][normal_post] |
|
95
|
+
| min_len | 0 | minimal answer lenght |
|
96
|
+
| max_len | 0 | maximum answer length |
|
93
97
|
| phrase | 0 | defines if the answer contains multiple words or not |
|
94
|
-
| case_sensitive
|
98
|
+
| case_sensitive| 0 | defines if the answer is case sensitive |
|
95
99
|
| calc | 0 | defines captcha requires calculation |
|
96
100
|
| lang | - | defines the captcha language, see the [list of supported languages] |
|
97
|
-
| hint_image
|
98
|
-
| hint_text
|
101
|
+
| hint_image | - | an image with hint shown to workers with the captcha, translated into instructionsimg API parameter |
|
102
|
+
| hint_text | - | hint or task text shown to workers with the captcha |
|
99
103
|
|
100
104
|
Below you can find basic examples for every captcha type, check out the code below.
|
101
105
|
|
@@ -359,9 +363,29 @@ result = client.mt_captcha({
|
|
359
363
|
})
|
360
364
|
```
|
361
365
|
|
366
|
+
### Friendly captcha
|
367
|
+
Use this method to solve Friendly captcha and obtain a token to bypass the protection.
|
368
|
+
```ruby
|
369
|
+
result = client.friendly({
|
370
|
+
pageurl: "https://example.com",
|
371
|
+
sitekey: "2FZFEVS1FZCGQ9"
|
372
|
+
})
|
373
|
+
```
|
374
|
+
|
375
|
+
### Cutcaptcha
|
376
|
+
Use this method to solve Cutcaptcha and obtain a token to bypass the protection.
|
377
|
+
```ruby
|
378
|
+
result = client.cutcaptcha({
|
379
|
+
misery_key: "a1488b66da00bf332a1488993a5443c79047e752",
|
380
|
+
api_key: "SAb83IIB",
|
381
|
+
pageurl: "https://example.cc/foo/bar.html"
|
382
|
+
})
|
383
|
+
```
|
384
|
+
|
362
385
|
## Other methods
|
363
386
|
|
364
387
|
### send / get_result
|
388
|
+
|
365
389
|
These methods can be used for manual captcha submission and answer polling.
|
366
390
|
```ruby
|
367
391
|
|
@@ -396,8 +420,24 @@ Use this method to report good or bad captcha answer.
|
|
396
420
|
client.report(captcha_id, True) # captcha solved correctly
|
397
421
|
client.report(captcha_id, False) # captcha solved incorrectly
|
398
422
|
```
|
423
|
+
## Proxies
|
424
|
+
|
425
|
+
You can pass your proxy as an additional argument for methods: recaptcha, funcaptcha, geetest, geetest v4, hcaptcha, keycaptcha, capy puzzle, lemin, turnstile, amazon waf, Cutcaptcha, Friendly captcha, MTCaptcha, DataDome, CyberSiARA and etc. The proxy will be forwarded to the API to solve the captcha.
|
426
|
+
|
427
|
+
We have our own proxies that we can offer you. [Buy residential proxies] for avoid restrictions and blocks. [Quick start].
|
428
|
+
|
429
|
+
Example solving reCAPTCHA V2 using proxy:
|
430
|
+
```ruby
|
431
|
+
result = client.recaptcha_v2({
|
432
|
+
googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
|
433
|
+
pageurl: 'https://mysite.com/page/with/recaptcha_v2',
|
434
|
+
invisible: 1,
|
435
|
+
proxytype: "https",
|
436
|
+
proxy: "proxyuser:strongPassword@123.123.123.123:3128"
|
437
|
+
})
|
438
|
+
```
|
399
439
|
|
400
|
-
|
440
|
+
## Error handling
|
401
441
|
In case of an error, the captcha solver throws an exception. It's important to properly handle these cases. We recommend using `begin rescue` to handle exceptions.
|
402
442
|
```ruby
|
403
443
|
begin
|
@@ -416,3 +456,12 @@ In case of an error, the captcha solver throws an exception. It's important to p
|
|
416
456
|
puts(e)
|
417
457
|
end
|
418
458
|
```
|
459
|
+
|
460
|
+
<!-- Shared links -->
|
461
|
+
[2Captcha]: https://2captcha.com/
|
462
|
+
[2captcha sofware catalog]: https://2captcha.com/software
|
463
|
+
[pingback settings]: https://2captcha.com/setting/pingback
|
464
|
+
[normal_post]: https://2captcha.com/2captcha-api#normal_post
|
465
|
+
[list of supported languages]: https://2captcha.com/2captcha-api#language
|
466
|
+
[Buy residential proxies]: https://2captcha.com/proxy/residential-proxies
|
467
|
+
[Quick start]: https://2captcha.com/proxy?openAddTrafficModal=true
|
data/README.ru.md
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
# Ruby 2Captcha API Client
|
2
2
|
|
3
|
-
Это самый простой способ быстро интегрировать 2Captcha в ваш код и автоматизировать решение любого типа капчи.
|
3
|
+
Это самый простой способ быстро интегрировать [2Captcha] в ваш код и автоматизировать решение любого типа капчи.
|
4
4
|
|
5
5
|
Ruby-клиент для API 2Captcha.
|
6
6
|
|
7
|
-
- [Установка](
|
8
|
-
- [Настройка](
|
9
|
-
- [Опции экземпляра клиента](
|
10
|
-
- [Решение капчи](
|
11
|
-
- [Обычная капча](
|
12
|
-
- [Текстовая капча](
|
13
|
-
- [
|
14
|
-
- [
|
7
|
+
- [Установка](#установка)
|
8
|
+
- [Настройка](#настройка)
|
9
|
+
- [Опции экземпляра клиента](#опции-экземпляра-клиента)
|
10
|
+
- [Решение капчи](#решение-капчи)
|
11
|
+
- [Обычная капча](#обычная-капча)
|
12
|
+
- [Текстовая капча](#текстовая-капча)
|
13
|
+
- [reCAPTCHA v2](#recaptcha-v2)
|
14
|
+
- [reCAPTCHA v3](#recaptcha-v3)
|
15
|
+
- [FunCaptcha](#funcaptcha)
|
15
16
|
- [GeeTest](#geetest)
|
16
17
|
- [hCaptcha](#hcaptcha)
|
17
18
|
- [KeyCaptcha](#keycaptcha)
|
@@ -25,26 +26,32 @@ Ruby-клиент для API 2Captcha.
|
|
25
26
|
- [Lemin Cropped Captcha](#lemin-cropped-captcha)
|
26
27
|
- [GeeTest V4](#geetest-v4)
|
27
28
|
- [Аудио](#audio)
|
28
|
-
- [CyberSiARA](#
|
29
|
-
- [DataDome](#
|
29
|
+
- [CyberSiARA](#cybersiara)
|
30
|
+
- [DataDome](#datadome)
|
30
31
|
- [MTCaptcha](#mtcaptcha)
|
31
|
-
- [
|
32
|
-
- [
|
33
|
-
|
34
|
-
- [
|
35
|
-
- [
|
32
|
+
- [Friendly captcha](#friendly-captcha)
|
33
|
+
- [Cutcaptcha](#cutcaptcha)
|
34
|
+
- [Другие методы](#другие-методы)
|
35
|
+
- [send / get_result](#send--get_result)
|
36
|
+
- [Баланс](#баланс)
|
37
|
+
- [Отчет](#отчет)
|
38
|
+
- [Прокси](#прокси)
|
39
|
+
- [Обработка ошибок](#обработка-ошибок)
|
36
40
|
|
37
41
|
## Установка
|
38
42
|
Автоматическая установка гема с помощью Bundler. Добавьте следующую строку в ваш Gemfile:
|
43
|
+
|
39
44
|
```ruby
|
40
45
|
gem 'ruby-2captcha'
|
41
46
|
```
|
42
47
|
Затем выполните следующую команду в терминале:
|
48
|
+
|
43
49
|
```ruby
|
44
50
|
bundle install
|
45
51
|
```
|
46
52
|
|
47
53
|
Или установите его самостоятельно, выполнив следующую команду в терминале:
|
54
|
+
|
48
55
|
```ruby
|
49
56
|
gem install ruby-2captcha
|
50
57
|
```
|
@@ -62,7 +69,7 @@ require 'api_2captcha'
|
|
62
69
|
|
63
70
|
client = Api2Captcha.new("YOUR_API_KEY")
|
64
71
|
```
|
65
|
-
|
72
|
+
### Опции экземпляра клиента
|
66
73
|
У вас также есть возможность настроить некоторые параметры экземпляра Api2Captcha:
|
67
74
|
|
68
75
|
```ruby
|
@@ -82,7 +89,7 @@ client.polling_interval(10)
|
|
82
89
|
|
83
90
|
| Параметр | Значение по умолчанию | Описание |
|
84
91
|
|-------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------|
|
85
|
-
| numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#
|
92
|
+
| numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha) |
|
86
93
|
| min_len | 0 | Минимальная длина ответа length |
|
87
94
|
| max_len | 0 | Максимальная длина ответа length |
|
88
95
|
| phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
|
@@ -96,6 +103,7 @@ client.polling_interval(10)
|
|
96
103
|
|
97
104
|
### Обычная капча
|
98
105
|
Для обхода обычной капчи (искаженный текст на картинке) используйте следующий метод. Этот метод также может использоваться для распознавания любого текста на картинке.
|
106
|
+
|
99
107
|
```ruby
|
100
108
|
result = client.normal({ image: 'path/to/captcha.jpg'})
|
101
109
|
# OR
|
@@ -103,9 +111,10 @@ result = client.normal({
|
|
103
111
|
image: 'https://site-with-captcha.com/path/to/captcha.jpg'
|
104
112
|
})
|
105
113
|
```
|
106
|
-
|
107
114
|
### Текстовая капча
|
115
|
+
|
108
116
|
Этот метод может использоваться для обхода капчи, которая требует ответить на вопрос, представленный в явном виде.
|
117
|
+
|
109
118
|
```ruby
|
110
119
|
result = client.text({
|
111
120
|
textcaptcha:'Если завтра суббота, то какой сегодня день?',
|
@@ -113,8 +122,9 @@ result = client.text({
|
|
113
122
|
})
|
114
123
|
```
|
115
124
|
|
116
|
-
###
|
117
|
-
Используйте этот метод для решения
|
125
|
+
### reCAPTCHA v2
|
126
|
+
Используйте этот метод для решения reCAPTCHA v2 и получения токена для обхода защиты.
|
127
|
+
|
118
128
|
```ruby
|
119
129
|
result = client.recaptcha_v2({
|
120
130
|
googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
|
@@ -123,8 +133,9 @@ result = client.recaptcha_v2({
|
|
123
133
|
})
|
124
134
|
```
|
125
135
|
|
126
|
-
###
|
127
|
-
Этот метод предоставляет решение для
|
136
|
+
### reCAPTCHA v3
|
137
|
+
Этот метод предоставляет решение для reCAPTCHA v3 и возвращает токен.
|
138
|
+
|
128
139
|
```ruby
|
129
140
|
result = client.recaptcha_v3({
|
130
141
|
googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
|
@@ -137,6 +148,7 @@ result = client.recaptcha_v3({
|
|
137
148
|
|
138
149
|
### FunCaptcha
|
139
150
|
Метод решения FunCaptcha (Arkoselabs). Он возвращает токен.
|
151
|
+
|
140
152
|
```ruby
|
141
153
|
result = client.funcaptcha({
|
142
154
|
publickey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
|
@@ -146,6 +158,7 @@ result = client.funcaptcha({
|
|
146
158
|
|
147
159
|
### GeeTest
|
148
160
|
Метод для решения головоломки GeeTest captcha. Он возвращает набор токенов в формате JSON.
|
161
|
+
|
149
162
|
```ruby
|
150
163
|
result = client.geetest({
|
151
164
|
gt: 'f1ab2cdefa3456789012345b6c78d90e',
|
@@ -157,6 +170,7 @@ result = client.geetest({
|
|
157
170
|
|
158
171
|
### hCaptcha
|
159
172
|
Метод решения hCaptcha. Он возвращает токен для обхода капчи.
|
173
|
+
|
160
174
|
```ruby
|
161
175
|
result = client.hcaptcha({
|
162
176
|
sitekey: '10000000-ffff-ffff-ffff-000000000001',
|
@@ -166,6 +180,7 @@ result = client.hcaptcha({
|
|
166
180
|
|
167
181
|
### KeyCaptcha
|
168
182
|
Метод на основе токенов для решения KeyCaptcha.
|
183
|
+
|
169
184
|
```ruby
|
170
185
|
result = client.keycaptcha({
|
171
186
|
s_s_c_user_id: 10,
|
@@ -178,6 +193,7 @@ result = client.keycaptcha({
|
|
178
193
|
|
179
194
|
### Capy
|
180
195
|
Метод основан на использовании токенов для обхода паззла Capy.
|
196
|
+
|
181
197
|
```ruby
|
182
198
|
result = client.capy({
|
183
199
|
sitekey: 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
|
@@ -188,6 +204,7 @@ result = client.capy({
|
|
188
204
|
|
189
205
|
### Grid
|
190
206
|
Метод сетки изначально называется методом Old ReCaptcha V2. Этот метод может быть использован для обхода любого типа капчи, где вы можете применить сетку к изображению и необходимо кликнуть по определенным ячейкам сетки. Он возвращает количество выбранных ячеек.
|
207
|
+
|
191
208
|
```ruby
|
192
209
|
result = client.grid({
|
193
210
|
image: 'path/to/captcha.jpg',
|
@@ -202,6 +219,7 @@ result = client.grid({
|
|
202
219
|
|
203
220
|
### Canvas
|
204
221
|
Метод Canvas может быть использован, когда вам необходимо нарисовать линию вокруг объекта на изображении. Он возвращает набор координат точек для рисования многоугольника.
|
222
|
+
|
205
223
|
```ruby
|
206
224
|
result = client.canvas({
|
207
225
|
image: 'path/to/captcha.jpg',
|
@@ -214,6 +232,7 @@ result = client.canvas({
|
|
214
232
|
|
215
233
|
### ClickCaptcha
|
216
234
|
Метод ClickCaptcha возвращает координаты точек на изображении капчи. Может быть использован, если вам необходимо кликнуть по определенным точкам на изображении.
|
235
|
+
|
217
236
|
```ruby
|
218
237
|
result = client.coordinates({
|
219
238
|
image: 'path/to/captcha.jpg',
|
@@ -225,6 +244,7 @@ result = client.coordinates({
|
|
225
244
|
|
226
245
|
### Rotate
|
227
246
|
Этот метод может быть использован для решения капчи, которая просит повернуть объект. В основном используется для обхода FunCaptcha. Он возвращает угол поворота.
|
247
|
+
|
228
248
|
```ruby
|
229
249
|
result = client.rotate({
|
230
250
|
image: 'path/to/captcha.jpg',
|
@@ -235,8 +255,10 @@ result = client.rotate({
|
|
235
255
|
})
|
236
256
|
```
|
237
257
|
|
258
|
+
|
238
259
|
### Lemin Cropped Captcha
|
239
260
|
Используйте этот метод для решения задания hCaptcha. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
|
261
|
+
|
240
262
|
```ruby
|
241
263
|
result = client.lemin({
|
242
264
|
captcha_id: 'CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d901d',
|
@@ -246,8 +268,10 @@ result = client.lemin({
|
|
246
268
|
})
|
247
269
|
```
|
248
270
|
|
271
|
+
|
249
272
|
### Cloudflare Turnstile
|
250
273
|
Используйте этот метод для решения задачи Cloudflare Turnstile. Он возвращает JSON с токеном.
|
274
|
+
|
251
275
|
```ruby
|
252
276
|
result = client.turnstile({
|
253
277
|
sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
|
@@ -257,6 +281,7 @@ result = client.turnstile({
|
|
257
281
|
|
258
282
|
### Amazon WAF
|
259
283
|
Используйте этот метод для решения Captcha Amazon WAF, также известного как AWS WAF Captcha, который является частью интеллектуальной защиты от угроз для Amazon AWS. Он возвращает JSON с токеном.
|
284
|
+
|
260
285
|
```ruby
|
261
286
|
result = client.amazon_waf({
|
262
287
|
sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
|
@@ -270,6 +295,7 @@ result = client.amazon_waf({
|
|
270
295
|
|
271
296
|
### GeeTest v4
|
272
297
|
Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
|
298
|
+
|
273
299
|
```ruby
|
274
300
|
result = client.geetest_v4({
|
275
301
|
captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
|
@@ -279,6 +305,7 @@ result = client.geetest_v4({
|
|
279
305
|
|
280
306
|
### Audio
|
281
307
|
Этот метод можно использовать для решения аудио-капчи.
|
308
|
+
|
282
309
|
```ruby
|
283
310
|
result = client.audio({
|
284
311
|
audio: 'path/to/audio.jpg',
|
@@ -288,6 +315,7 @@ result = client.audio({
|
|
288
315
|
|
289
316
|
### CyberSiARA
|
290
317
|
Метод решения CyberSiARA. Он возвращает токен для обхода капчи.
|
318
|
+
|
291
319
|
```ruby
|
292
320
|
result = client.cyber_siara({
|
293
321
|
pageurl: "https://test.com",
|
@@ -298,6 +326,7 @@ result = client.cyber_siara({
|
|
298
326
|
### DataDome
|
299
327
|
Метод решения DataDome вернет токен для обхода капчи.
|
300
328
|
Чтобы решить капчу DataDome вы должны обязательно использовать прокси.
|
329
|
+
|
301
330
|
```ruby
|
302
331
|
result = client.data_dome({
|
303
332
|
pageurl: "https://test.com",
|
@@ -307,8 +336,10 @@ result = client.data_dome({
|
|
307
336
|
})
|
308
337
|
```
|
309
338
|
|
339
|
+
|
310
340
|
### MTCaptcha
|
311
341
|
Метод решения MTCaptcha. Он возвращает токен для обхода капчи.
|
342
|
+
|
312
343
|
```ruby
|
313
344
|
result = client.mt_captcha({
|
314
345
|
pageurl: "https://service.mtcaptcha.com/mtcv1/demo/index.html",
|
@@ -316,10 +347,35 @@ result = client.mt_captcha({
|
|
316
347
|
})
|
317
348
|
```
|
318
349
|
|
350
|
+
|
351
|
+
### Friendly captcha
|
352
|
+
Метод решения Friendly captcha. Он возвращает токен для обхода капчи.
|
353
|
+
|
354
|
+
```ruby
|
355
|
+
result = client.friendly({
|
356
|
+
pageurl: "https://example.com",
|
357
|
+
sitekey: "2FZFEVS1FZCGQ9"
|
358
|
+
})
|
359
|
+
```
|
360
|
+
|
361
|
+
|
362
|
+
### Cutcaptcha
|
363
|
+
Метод решения Cutcaptcha. Он возвращает токен для обхода капчи.
|
364
|
+
|
365
|
+
```ruby
|
366
|
+
result = client.cutcaptcha({
|
367
|
+
misery_key: "a1488b66da00bf332a1488993a5443c79047e752",
|
368
|
+
api_key: "SAb83IIB",
|
369
|
+
pageurl: "https://example.cc/foo/bar.html"
|
370
|
+
})
|
371
|
+
```
|
372
|
+
|
373
|
+
|
319
374
|
## Другие методы
|
320
375
|
|
321
376
|
### send / get_result
|
322
377
|
Эти методы могут быть использованы для ручного отправления капчи и получения результата.
|
378
|
+
|
323
379
|
```ruby
|
324
380
|
# пример для обычной капчи
|
325
381
|
captcha_id = client.send('path/to/captcha.jpg')
|
@@ -338,22 +394,42 @@ time.sleep(20)
|
|
338
394
|
# Получить готовый результат
|
339
395
|
result = client.get_result(captcha_id)
|
340
396
|
```
|
341
|
-
|
342
397
|
### Баланс
|
343
398
|
Используйте этот метод, чтобы посмотреть баланс в вашем аккаунте.
|
399
|
+
|
344
400
|
```ruby
|
345
401
|
balance = client.get_balance
|
346
402
|
```
|
347
403
|
|
348
404
|
### Отчет
|
349
405
|
Используйте этот метод для отправки отчета о правильном или неправильном ответе на капчу.
|
406
|
+
|
350
407
|
```ruby
|
351
408
|
client.report(captcha_id, True) # капча решена правильно
|
352
409
|
client.report(captcha_id, False) # капча решена неправильно
|
353
410
|
```
|
354
411
|
|
355
|
-
|
412
|
+
## Прокси
|
413
|
+
|
414
|
+
Вы можете передать свой прокси-сервер в качестве дополнительного аргумента для методов: recaptcha, funcaptcha, geetest, geetest v4, hcaptcha, keycaptcha, capy puzzle, lemin, turnstile, amazon waf, Cutcaptcha, Friendly captcha, MTCaptcha, DataDome, CyberSiARA и других. Передынный Прокси-сервер будет перенаправлен в API и будет использован для загрузки капчи.
|
415
|
+
|
416
|
+
У нас есть свои собственные прокси-серверы, которые мы можем вам предложить. [Купить резидентские прокси] чтобы избежать ограничений и блокировок. [Быстрый старт].
|
417
|
+
|
418
|
+
Пример решения reCAPTCHA V2 с использованием прокси-сервера:
|
419
|
+
|
420
|
+
```ruby
|
421
|
+
result = client.recaptcha_v2({
|
422
|
+
googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
|
423
|
+
pageurl: 'https://mysite.com/page/with/recaptcha_v2',
|
424
|
+
invisible: 1,
|
425
|
+
proxytype: "https",
|
426
|
+
proxy: "proxyuser:strongPassword@123.123.123.123:3128"
|
427
|
+
})
|
428
|
+
```
|
429
|
+
|
430
|
+
## Обработка ошибок
|
356
431
|
В случае ошибки при решении капчи генерируется исключение. Важно правильно обрабатывать такие случаи. Мы рекомендуем использовать конструкцию `begin rescue` для обработки.
|
432
|
+
|
357
433
|
```ruby
|
358
434
|
begin
|
359
435
|
result = client.text('Если завтра суббота, то какой сегодня день?')
|
@@ -371,3 +447,8 @@ client.report(captcha_id, False) # капча решена неправильн
|
|
371
447
|
puts(e)
|
372
448
|
end
|
373
449
|
```
|
450
|
+
|
451
|
+
<!-- Shared links -->
|
452
|
+
[2Captcha]: https://2captcha.com/
|
453
|
+
[Купить резидентские прокси]: https://2captcha.com/proxy/residential-proxies
|
454
|
+
[Быстрый старт]: https://2captcha.com/proxy?openAddTrafficModal=true
|
data/lib/api_2captcha/client.rb
CHANGED
@@ -10,20 +10,20 @@ module Api2Captcha
|
|
10
10
|
DEFAULT_DOMAIN = "2captcha.com"
|
11
11
|
BASE_URL_FORMAT = "https://%s"
|
12
12
|
|
13
|
-
attr_reader :api_key, :soft_id
|
14
|
-
|
15
13
|
attr_accessor :domain, :callback,
|
16
14
|
:default_timeout,
|
17
15
|
:recaptcha_timeout,
|
18
|
-
:polling_interval
|
16
|
+
:polling_interval,
|
17
|
+
:api_key, :soft_id
|
19
18
|
|
20
|
-
def initialize(api_key,
|
19
|
+
def initialize(api_key, callback = nil)
|
21
20
|
@api_key = api_key
|
22
21
|
@soft_id = soft_id
|
23
22
|
@callback = callback
|
24
23
|
@default_timeout = 120
|
25
24
|
@recaptcha_timeout = 600
|
26
25
|
@polling_interval = 10
|
26
|
+
@soft_id = 4584
|
27
27
|
@domain = DEFAULT_DOMAIN
|
28
28
|
end
|
29
29
|
|
@@ -197,6 +197,14 @@ module Api2Captcha
|
|
197
197
|
solve("mt_captcha", **params)
|
198
198
|
end
|
199
199
|
|
200
|
+
def friendly(params)
|
201
|
+
solve("friendly_captcha", **params)
|
202
|
+
end
|
203
|
+
|
204
|
+
def cutcaptcha(params)
|
205
|
+
solve("cutcaptcha", **params)
|
206
|
+
end
|
207
|
+
|
200
208
|
private
|
201
209
|
|
202
210
|
def base_url
|
data/lib/api_2captcha/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-2captcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 2captcha.com
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Ruby package for easy integration with the API of 2captcha captcha solving
|
14
14
|
service to bypass recaptcha, hcaptcha, funcaptcha, geetest and solve any other captchas.
|