ruby-2captcha 1.1.4 → 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 +55 -17
- data/README.ru.md +94 -23
- data/lib/api_2captcha/client.rb +5 -1
- 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)
|
@@ -31,11 +32,13 @@ A Ruby client for the 2Captcha API.
|
|
31
32
|
- [DataDome](#datadome)
|
32
33
|
- [MTCaptcha](#mtcaptcha)
|
33
34
|
- [Friendly captcha](#friendly-captcha)
|
35
|
+
- [Cutcaptcha](#cutcaptcha)
|
34
36
|
- [Other methods](#other-methods)
|
35
37
|
- [send / get_result](#send--get_result)
|
36
38
|
- [balance](#balance)
|
37
39
|
- [report](#report)
|
38
|
-
|
40
|
+
- [Proxies](#proxies)
|
41
|
+
- [Error handling](#error-handling)
|
39
42
|
|
40
43
|
## Installation
|
41
44
|
Add this line to your application's Gemfile:
|
@@ -72,15 +75,15 @@ client.api_key = "YOUR_API_KEY"
|
|
72
75
|
|
73
76
|
### Client instance options
|
74
77
|
|
75
|
-
|Option|Default value|Description|
|
76
|
-
|
77
|
-
|soft_id
|
78
|
-
|callback
|
79
|
-
|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|
|
80
|
-
|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|
|
81
84
|
|
82
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.
|
83
|
-
To get the answer manually use [get_result method](#send--
|
86
|
+
To get the answer manually use [get_result method](#send--get_result)
|
84
87
|
|
85
88
|
## Solve captcha
|
86
89
|
When you submit any image-based captcha use can provide additional options to help 2captcha workers to solve it properly.
|
@@ -88,15 +91,15 @@ When you submit any image-based captcha use can provide additional options to he
|
|
88
91
|
### Captcha options
|
89
92
|
| Option | Default Value | Description |
|
90
93
|
| ------------- | ------------- | -------------------------------------------------------------------------------------------------- |
|
91
|
-
| numeric | 0 | Defines if captcha contains numeric or other symbols [see more info in the API docs][
|
92
|
-
| min_len
|
93
|
-
| 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 |
|
94
97
|
| phrase | 0 | defines if the answer contains multiple words or not |
|
95
|
-
| case_sensitive
|
98
|
+
| case_sensitive| 0 | defines if the answer is case sensitive |
|
96
99
|
| calc | 0 | defines captcha requires calculation |
|
97
100
|
| lang | - | defines the captcha language, see the [list of supported languages] |
|
98
|
-
| hint_image
|
99
|
-
| 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 |
|
100
103
|
|
101
104
|
Below you can find basic examples for every captcha type, check out the code below.
|
102
105
|
|
@@ -363,12 +366,22 @@ result = client.mt_captcha({
|
|
363
366
|
### Friendly captcha
|
364
367
|
Use this method to solve Friendly captcha and obtain a token to bypass the protection.
|
365
368
|
```ruby
|
366
|
-
result = client.
|
369
|
+
result = client.friendly({
|
367
370
|
pageurl: "https://example.com",
|
368
371
|
sitekey: "2FZFEVS1FZCGQ9"
|
369
372
|
})
|
370
373
|
```
|
371
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
|
+
|
372
385
|
## Other methods
|
373
386
|
|
374
387
|
### send / get_result
|
@@ -407,8 +420,24 @@ Use this method to report good or bad captcha answer.
|
|
407
420
|
client.report(captcha_id, True) # captcha solved correctly
|
408
421
|
client.report(captcha_id, False) # captcha solved incorrectly
|
409
422
|
```
|
423
|
+
## Proxies
|
410
424
|
|
411
|
-
|
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
|
+
```
|
439
|
+
|
440
|
+
## Error handling
|
412
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.
|
413
442
|
```ruby
|
414
443
|
begin
|
@@ -427,3 +456,12 @@ In case of an error, the captcha solver throws an exception. It's important to p
|
|
427
456
|
puts(e)
|
428
457
|
end
|
429
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)
|
@@ -29,23 +30,28 @@ Ruby-клиент для API 2Captcha.
|
|
29
30
|
- [DataDome](#datadome)
|
30
31
|
- [MTCaptcha](#mtcaptcha)
|
31
32
|
- [Friendly captcha](#friendly-captcha)
|
32
|
-
- [
|
33
|
+
- [Cutcaptcha](#cutcaptcha)
|
34
|
+
- [Другие методы](#другие-методы)
|
33
35
|
- [send / get_result](#send--get_result)
|
34
|
-
- [
|
35
|
-
- [
|
36
|
-
|
36
|
+
- [Баланс](#баланс)
|
37
|
+
- [Отчет](#отчет)
|
38
|
+
- [Прокси](#прокси)
|
39
|
+
- [Обработка ошибок](#обработка-ошибок)
|
37
40
|
|
38
41
|
## Установка
|
39
42
|
Автоматическая установка гема с помощью Bundler. Добавьте следующую строку в ваш Gemfile:
|
43
|
+
|
40
44
|
```ruby
|
41
45
|
gem 'ruby-2captcha'
|
42
46
|
```
|
43
47
|
Затем выполните следующую команду в терминале:
|
48
|
+
|
44
49
|
```ruby
|
45
50
|
bundle install
|
46
51
|
```
|
47
52
|
|
48
53
|
Или установите его самостоятельно, выполнив следующую команду в терминале:
|
54
|
+
|
49
55
|
```ruby
|
50
56
|
gem install ruby-2captcha
|
51
57
|
```
|
@@ -63,7 +69,7 @@ require 'api_2captcha'
|
|
63
69
|
|
64
70
|
client = Api2Captcha.new("YOUR_API_KEY")
|
65
71
|
```
|
66
|
-
|
72
|
+
### Опции экземпляра клиента
|
67
73
|
У вас также есть возможность настроить некоторые параметры экземпляра Api2Captcha:
|
68
74
|
|
69
75
|
```ruby
|
@@ -83,7 +89,7 @@ client.polling_interval(10)
|
|
83
89
|
|
84
90
|
| Параметр | Значение по умолчанию | Описание |
|
85
91
|
|-------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------|
|
86
|
-
| numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#
|
92
|
+
| numeric | 0 | Определяет, содержит ли капча числа или другие символы [подробнее см. в документации по API](https://2captcha.com/2captcha-api#solving_normal_captcha) |
|
87
93
|
| min_len | 0 | Минимальная длина ответа length |
|
88
94
|
| max_len | 0 | Максимальная длина ответа length |
|
89
95
|
| phrase | 0 | Определяет, содержит ли ответ несколько слов или нет |
|
@@ -97,6 +103,7 @@ client.polling_interval(10)
|
|
97
103
|
|
98
104
|
### Обычная капча
|
99
105
|
Для обхода обычной капчи (искаженный текст на картинке) используйте следующий метод. Этот метод также может использоваться для распознавания любого текста на картинке.
|
106
|
+
|
100
107
|
```ruby
|
101
108
|
result = client.normal({ image: 'path/to/captcha.jpg'})
|
102
109
|
# OR
|
@@ -104,9 +111,10 @@ result = client.normal({
|
|
104
111
|
image: 'https://site-with-captcha.com/path/to/captcha.jpg'
|
105
112
|
})
|
106
113
|
```
|
107
|
-
|
108
114
|
### Текстовая капча
|
115
|
+
|
109
116
|
Этот метод может использоваться для обхода капчи, которая требует ответить на вопрос, представленный в явном виде.
|
117
|
+
|
110
118
|
```ruby
|
111
119
|
result = client.text({
|
112
120
|
textcaptcha:'Если завтра суббота, то какой сегодня день?',
|
@@ -114,8 +122,9 @@ result = client.text({
|
|
114
122
|
})
|
115
123
|
```
|
116
124
|
|
117
|
-
###
|
118
|
-
Используйте этот метод для решения
|
125
|
+
### reCAPTCHA v2
|
126
|
+
Используйте этот метод для решения reCAPTCHA v2 и получения токена для обхода защиты.
|
127
|
+
|
119
128
|
```ruby
|
120
129
|
result = client.recaptcha_v2({
|
121
130
|
googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
|
@@ -124,8 +133,9 @@ result = client.recaptcha_v2({
|
|
124
133
|
})
|
125
134
|
```
|
126
135
|
|
127
|
-
###
|
128
|
-
Этот метод предоставляет решение для
|
136
|
+
### reCAPTCHA v3
|
137
|
+
Этот метод предоставляет решение для reCAPTCHA v3 и возвращает токен.
|
138
|
+
|
129
139
|
```ruby
|
130
140
|
result = client.recaptcha_v3({
|
131
141
|
googlekey: '6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-',
|
@@ -138,6 +148,7 @@ result = client.recaptcha_v3({
|
|
138
148
|
|
139
149
|
### FunCaptcha
|
140
150
|
Метод решения FunCaptcha (Arkoselabs). Он возвращает токен.
|
151
|
+
|
141
152
|
```ruby
|
142
153
|
result = client.funcaptcha({
|
143
154
|
publickey: "69A21A01-CC7B-B9C6-0F9A-E7FA06677FFC",
|
@@ -147,6 +158,7 @@ result = client.funcaptcha({
|
|
147
158
|
|
148
159
|
### GeeTest
|
149
160
|
Метод для решения головоломки GeeTest captcha. Он возвращает набор токенов в формате JSON.
|
161
|
+
|
150
162
|
```ruby
|
151
163
|
result = client.geetest({
|
152
164
|
gt: 'f1ab2cdefa3456789012345b6c78d90e',
|
@@ -158,6 +170,7 @@ result = client.geetest({
|
|
158
170
|
|
159
171
|
### hCaptcha
|
160
172
|
Метод решения hCaptcha. Он возвращает токен для обхода капчи.
|
173
|
+
|
161
174
|
```ruby
|
162
175
|
result = client.hcaptcha({
|
163
176
|
sitekey: '10000000-ffff-ffff-ffff-000000000001',
|
@@ -167,6 +180,7 @@ result = client.hcaptcha({
|
|
167
180
|
|
168
181
|
### KeyCaptcha
|
169
182
|
Метод на основе токенов для решения KeyCaptcha.
|
183
|
+
|
170
184
|
```ruby
|
171
185
|
result = client.keycaptcha({
|
172
186
|
s_s_c_user_id: 10,
|
@@ -179,6 +193,7 @@ result = client.keycaptcha({
|
|
179
193
|
|
180
194
|
### Capy
|
181
195
|
Метод основан на использовании токенов для обхода паззла Capy.
|
196
|
+
|
182
197
|
```ruby
|
183
198
|
result = client.capy({
|
184
199
|
sitekey: 'PUZZLE_Abc1dEFghIJKLM2no34P56q7rStu8v',
|
@@ -189,6 +204,7 @@ result = client.capy({
|
|
189
204
|
|
190
205
|
### Grid
|
191
206
|
Метод сетки изначально называется методом Old ReCaptcha V2. Этот метод может быть использован для обхода любого типа капчи, где вы можете применить сетку к изображению и необходимо кликнуть по определенным ячейкам сетки. Он возвращает количество выбранных ячеек.
|
207
|
+
|
192
208
|
```ruby
|
193
209
|
result = client.grid({
|
194
210
|
image: 'path/to/captcha.jpg',
|
@@ -203,6 +219,7 @@ result = client.grid({
|
|
203
219
|
|
204
220
|
### Canvas
|
205
221
|
Метод Canvas может быть использован, когда вам необходимо нарисовать линию вокруг объекта на изображении. Он возвращает набор координат точек для рисования многоугольника.
|
222
|
+
|
206
223
|
```ruby
|
207
224
|
result = client.canvas({
|
208
225
|
image: 'path/to/captcha.jpg',
|
@@ -215,6 +232,7 @@ result = client.canvas({
|
|
215
232
|
|
216
233
|
### ClickCaptcha
|
217
234
|
Метод ClickCaptcha возвращает координаты точек на изображении капчи. Может быть использован, если вам необходимо кликнуть по определенным точкам на изображении.
|
235
|
+
|
218
236
|
```ruby
|
219
237
|
result = client.coordinates({
|
220
238
|
image: 'path/to/captcha.jpg',
|
@@ -226,6 +244,7 @@ result = client.coordinates({
|
|
226
244
|
|
227
245
|
### Rotate
|
228
246
|
Этот метод может быть использован для решения капчи, которая просит повернуть объект. В основном используется для обхода FunCaptcha. Он возвращает угол поворота.
|
247
|
+
|
229
248
|
```ruby
|
230
249
|
result = client.rotate({
|
231
250
|
image: 'path/to/captcha.jpg',
|
@@ -236,8 +255,10 @@ result = client.rotate({
|
|
236
255
|
})
|
237
256
|
```
|
238
257
|
|
258
|
+
|
239
259
|
### Lemin Cropped Captcha
|
240
260
|
Используйте этот метод для решения задания hCaptcha. Он возвращает JSON-ответ с указанными значениями: ответ (answer) и идентификатор задания (challenge_id).
|
261
|
+
|
241
262
|
```ruby
|
242
263
|
result = client.lemin({
|
243
264
|
captcha_id: 'CROPPED_1abcd2f_a1234b567c890d12ef3a456bc78d901d',
|
@@ -247,8 +268,10 @@ result = client.lemin({
|
|
247
268
|
})
|
248
269
|
```
|
249
270
|
|
271
|
+
|
250
272
|
### Cloudflare Turnstile
|
251
273
|
Используйте этот метод для решения задачи Cloudflare Turnstile. Он возвращает JSON с токеном.
|
274
|
+
|
252
275
|
```ruby
|
253
276
|
result = client.turnstile({
|
254
277
|
sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
|
@@ -258,6 +281,7 @@ result = client.turnstile({
|
|
258
281
|
|
259
282
|
### Amazon WAF
|
260
283
|
Используйте этот метод для решения Captcha Amazon WAF, также известного как AWS WAF Captcha, который является частью интеллектуальной защиты от угроз для Amazon AWS. Он возвращает JSON с токеном.
|
284
|
+
|
261
285
|
```ruby
|
262
286
|
result = client.amazon_waf({
|
263
287
|
sitekey: '0x1AAAAAAAAkg0s2VIOD34y5',
|
@@ -271,6 +295,7 @@ result = client.amazon_waf({
|
|
271
295
|
|
272
296
|
### GeeTest v4
|
273
297
|
Используйте этот метод для решения GeeTest v4. Он возвращает ответ в формате JSON.
|
298
|
+
|
274
299
|
```ruby
|
275
300
|
result = client.geetest_v4({
|
276
301
|
captcha_id: 'e392e1d7fd421dc63325744d5a2b9c73',
|
@@ -280,6 +305,7 @@ result = client.geetest_v4({
|
|
280
305
|
|
281
306
|
### Audio
|
282
307
|
Этот метод можно использовать для решения аудио-капчи.
|
308
|
+
|
283
309
|
```ruby
|
284
310
|
result = client.audio({
|
285
311
|
audio: 'path/to/audio.jpg',
|
@@ -289,6 +315,7 @@ result = client.audio({
|
|
289
315
|
|
290
316
|
### CyberSiARA
|
291
317
|
Метод решения CyberSiARA. Он возвращает токен для обхода капчи.
|
318
|
+
|
292
319
|
```ruby
|
293
320
|
result = client.cyber_siara({
|
294
321
|
pageurl: "https://test.com",
|
@@ -299,6 +326,7 @@ result = client.cyber_siara({
|
|
299
326
|
### DataDome
|
300
327
|
Метод решения DataDome вернет токен для обхода капчи.
|
301
328
|
Чтобы решить капчу DataDome вы должны обязательно использовать прокси.
|
329
|
+
|
302
330
|
```ruby
|
303
331
|
result = client.data_dome({
|
304
332
|
pageurl: "https://test.com",
|
@@ -308,8 +336,10 @@ result = client.data_dome({
|
|
308
336
|
})
|
309
337
|
```
|
310
338
|
|
339
|
+
|
311
340
|
### MTCaptcha
|
312
341
|
Метод решения MTCaptcha. Он возвращает токен для обхода капчи.
|
342
|
+
|
313
343
|
```ruby
|
314
344
|
result = client.mt_captcha({
|
315
345
|
pageurl: "https://service.mtcaptcha.com/mtcv1/demo/index.html",
|
@@ -317,19 +347,35 @@ result = client.mt_captcha({
|
|
317
347
|
})
|
318
348
|
```
|
319
349
|
|
350
|
+
|
320
351
|
### Friendly captcha
|
321
352
|
Метод решения Friendly captcha. Он возвращает токен для обхода капчи.
|
353
|
+
|
322
354
|
```ruby
|
323
|
-
result = client.
|
355
|
+
result = client.friendly({
|
324
356
|
pageurl: "https://example.com",
|
325
357
|
sitekey: "2FZFEVS1FZCGQ9"
|
326
358
|
})
|
327
359
|
```
|
328
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
|
+
|
329
374
|
## Другие методы
|
330
375
|
|
331
376
|
### send / get_result
|
332
377
|
Эти методы могут быть использованы для ручного отправления капчи и получения результата.
|
378
|
+
|
333
379
|
```ruby
|
334
380
|
# пример для обычной капчи
|
335
381
|
captcha_id = client.send('path/to/captcha.jpg')
|
@@ -348,22 +394,42 @@ time.sleep(20)
|
|
348
394
|
# Получить готовый результат
|
349
395
|
result = client.get_result(captcha_id)
|
350
396
|
```
|
351
|
-
|
352
397
|
### Баланс
|
353
398
|
Используйте этот метод, чтобы посмотреть баланс в вашем аккаунте.
|
399
|
+
|
354
400
|
```ruby
|
355
401
|
balance = client.get_balance
|
356
402
|
```
|
357
403
|
|
358
404
|
### Отчет
|
359
405
|
Используйте этот метод для отправки отчета о правильном или неправильном ответе на капчу.
|
406
|
+
|
360
407
|
```ruby
|
361
408
|
client.report(captcha_id, True) # капча решена правильно
|
362
409
|
client.report(captcha_id, False) # капча решена неправильно
|
363
410
|
```
|
364
411
|
|
365
|
-
|
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
|
+
## Обработка ошибок
|
366
431
|
В случае ошибки при решении капчи генерируется исключение. Важно правильно обрабатывать такие случаи. Мы рекомендуем использовать конструкцию `begin rescue` для обработки.
|
432
|
+
|
367
433
|
```ruby
|
368
434
|
begin
|
369
435
|
result = client.text('Если завтра суббота, то какой сегодня день?')
|
@@ -381,3 +447,8 @@ client.report(captcha_id, False) # капча решена неправильн
|
|
381
447
|
puts(e)
|
382
448
|
end
|
383
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
@@ -23,7 +23,7 @@ module Api2Captcha
|
|
23
23
|
@default_timeout = 120
|
24
24
|
@recaptcha_timeout = 600
|
25
25
|
@polling_interval = 10
|
26
|
-
@soft_id =
|
26
|
+
@soft_id = 4584
|
27
27
|
@domain = DEFAULT_DOMAIN
|
28
28
|
end
|
29
29
|
|
@@ -201,6 +201,10 @@ module Api2Captcha
|
|
201
201
|
solve("friendly_captcha", **params)
|
202
202
|
end
|
203
203
|
|
204
|
+
def cutcaptcha(params)
|
205
|
+
solve("cutcaptcha", **params)
|
206
|
+
end
|
207
|
+
|
204
208
|
private
|
205
209
|
|
206
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: 2024-
|
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.
|