anti_captcha 2.1.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +35 -0
- data/anti_captcha.gemspec +1 -1
- data/lib/anti_captcha.rb +1 -0
- data/lib/anti_captcha/client.rb +46 -5
- data/lib/anti_captcha/models/recaptcha_v3_solution.rb +14 -0
- data/lib/anti_captcha/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f88c8306b71ac67c12e419775def29a07ca2ff868a6114b3ae63e342355ee0a
|
4
|
+
data.tar.gz: 3942d3860188b958da95dc7d0a1392b1e725007b3254849ac3ff0667d19cdb8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f26aa3040dde769a91dbc17a5e81a068a34adcf38d32a352989694928675f8c55af1343ee7ab41d59a755ed08a4470709b368de8d7f8d9ee53bcb3ec71a9f405
|
7
|
+
data.tar.gz: 9f02777af3ab19e95f158abff4007ad6870f513a3338ba569daf904a9bb6ab955b58b82cadc07c8070dc46f3d7b72639a57629f012b6f02b4d093d7223d3df18
|
data/README.md
CHANGED
@@ -135,6 +135,41 @@ Or install it yourself as:
|
|
135
135
|
solution.token # Solution of the captcha
|
136
136
|
```
|
137
137
|
|
138
|
+
8. **reCAPTCHA V3**
|
139
|
+
|
140
|
+
This method allows you to solve [reCAPTCHA v3](https://developers.google.com/recaptcha/docs/v3).
|
141
|
+
|
142
|
+
There are two methods available:
|
143
|
+
|
144
|
+
- `decode_recaptcha_v3`: solves reCAPTCHA v3. It doesn't raise exceptions.
|
145
|
+
- `decode_recaptcha_v3!`: solves reCAPTCHA v3. It may raise an `AntiCaptcha::Error` if something goes wrong.
|
146
|
+
|
147
|
+
**Send the `website_key`, `website_url`, `min_score` and `page_action` parameters**
|
148
|
+
|
149
|
+
This method requires no browser emulation. You can send four parameters that
|
150
|
+
identify the website in which the CAPTCHA is found and the minimum score (0.3, 0.5 or 0.7) you
|
151
|
+
desire.
|
152
|
+
|
153
|
+
```ruby
|
154
|
+
options = {
|
155
|
+
website_key: 'xyz',
|
156
|
+
website_url: 'http://example.com/example=1',
|
157
|
+
min_score: 0.3,
|
158
|
+
page_action: 'myverify'
|
159
|
+
}
|
160
|
+
|
161
|
+
solution = client.decode_recaptcha_v3!(options)
|
162
|
+
solution.g_recaptcha_response # Solution of the captcha
|
163
|
+
```
|
164
|
+
|
165
|
+
The solution (`solution.g_recaptcha_response`) will be a code that validates
|
166
|
+
the form, like the following:
|
167
|
+
|
168
|
+
```ruby
|
169
|
+
"1JJHJ_VuuHAqJKxcaasbTsqw-L1Sm4gD57PTeaEr9-MaETG1vfu2H5zlcwkjsRoZoHxx6V9yUDw8Ig-hYD8kakmSnnjNQd50w_Y_tI3aDLp-s_7ZmhH6pcaoWWsid5hdtMXyvrP9DscDuCLBf7etLle8caPWSaYCpAq9DOTtj5NpSg6-OeCJdGdkjsakFUMeGeqmje87wSajcjmdjl_w4XZBY2zy8fUH6XoAGZ6AeCTulIljBQDObQynKDd-rutPvKNxZasDk-LbhTfw508g1lu9io6jnvm3kbAdnkfZ0x0PkGiUMHU7hnuoW6bXo2Yn_Zt5tDWL7N7wFtY6B0k7cTy73f8er508zReOuoyz2NqL8smDCmcJu05ajkPGt20qzpURMwHaw"
|
170
|
+
```
|
171
|
+
|
172
|
+
|
138
173
|
## Notes
|
139
174
|
|
140
175
|
#### Ruby dependencies
|
data/anti_captcha.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["team@infosimples.com.br"]
|
11
11
|
|
12
12
|
spec.summary = %q{Ruby API for Anti Captcha (CAPTCHA Solver as a Service)}
|
13
|
-
spec.description = %q{
|
13
|
+
spec.description = %q{Anti Captcha is an automated CAPTCHA solving service}
|
14
14
|
spec.homepage = "https://github.com/infosimples/anti_captcha"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
data/lib/anti_captcha.rb
CHANGED
@@ -34,6 +34,7 @@ require 'anti_captcha/errors'
|
|
34
34
|
require 'anti_captcha/models/solution'
|
35
35
|
require 'anti_captcha/models/image_to_text_solution'
|
36
36
|
require 'anti_captcha/models/no_captcha_solution'
|
37
|
+
require 'anti_captcha/models/recaptcha_v3_solution'
|
37
38
|
require 'anti_captcha/models/fun_captcha_solution'
|
38
39
|
require 'anti_captcha/models/task_result'
|
39
40
|
require 'anti_captcha/client'
|
data/lib/anti_captcha/client.rb
CHANGED
@@ -111,6 +111,36 @@ module AntiCaptcha
|
|
111
111
|
AntiCaptcha::NoCaptchaSolution.new(task_result)
|
112
112
|
end
|
113
113
|
|
114
|
+
#
|
115
|
+
# Decodes a reCAPTCHA V3.
|
116
|
+
#
|
117
|
+
# @see `AntiCaptcha::Client#decode_recaptcha_v3!`
|
118
|
+
#
|
119
|
+
def decode_recaptcha_v3(options)
|
120
|
+
decode_recaptcha_v3!(options)
|
121
|
+
rescue
|
122
|
+
AntiCaptcha::RecaptchaV3Solution.new
|
123
|
+
end
|
124
|
+
|
125
|
+
#
|
126
|
+
# Decodes a reCAPTCHA V3. Proxy is not supported.
|
127
|
+
#
|
128
|
+
# @param [Hash] options Options hash.
|
129
|
+
# @option options [String] :website_url
|
130
|
+
# @option options [String] :website_key
|
131
|
+
# @option options [String] :min_score (one of 0.3, 0,5 or 0.7)
|
132
|
+
# @option options [String] :page_action
|
133
|
+
# @option options [String] :language_pool
|
134
|
+
#
|
135
|
+
# @return [AntiCaptcha::RecaptchaV3Solution] The solution of
|
136
|
+
# the reCAPTCHA V3.
|
137
|
+
#
|
138
|
+
def decode_recaptcha_v3!(options)
|
139
|
+
task = create_task!('RecaptchaV3TaskProxyless', options)
|
140
|
+
task_result = get_task_result!(task['taskId'])
|
141
|
+
AntiCaptcha::RecaptchaV3Solution.new(task_result)
|
142
|
+
end
|
143
|
+
|
114
144
|
#
|
115
145
|
# Decodes a FunCaptcha CAPTCHA.
|
116
146
|
#
|
@@ -203,6 +233,15 @@ module AntiCaptcha
|
|
203
233
|
websiteKey: options[:website_key],
|
204
234
|
}
|
205
235
|
|
236
|
+
when 'RecaptchaV3TaskProxyless'
|
237
|
+
args[:task] = {
|
238
|
+
type: 'RecaptchaV3TaskProxyless',
|
239
|
+
websiteURL: options[:website_url],
|
240
|
+
websiteKey: options[:website_key],
|
241
|
+
minScore: options[:min_score].to_f,
|
242
|
+
pageAction: options[:page_action],
|
243
|
+
}
|
244
|
+
|
206
245
|
when 'FunCaptchaTask'
|
207
246
|
args[:task] = {
|
208
247
|
type: 'FunCaptchaTask',
|
@@ -226,7 +265,7 @@ module AntiCaptcha
|
|
226
265
|
proxyPort: proxy[:proxy_port],
|
227
266
|
proxyLogin: proxy[:proxy_login],
|
228
267
|
proxyPassword: proxy[:proxy_password],
|
229
|
-
userAgent: proxy[:user_agent]
|
268
|
+
userAgent: proxy[:user_agent],
|
230
269
|
)
|
231
270
|
end
|
232
271
|
end
|
@@ -272,10 +311,12 @@ module AntiCaptcha
|
|
272
311
|
# tasks.
|
273
312
|
#
|
274
313
|
# @param [String] queue_id The ID of the queue. Options:
|
275
|
-
# 1
|
276
|
-
# 2
|
277
|
-
# 5
|
278
|
-
# 6
|
314
|
+
# 1 - standart ImageToText, English language.
|
315
|
+
# 2 - standart ImageToText, Russian language.
|
316
|
+
# 5 - Recaptcha NoCaptcha tasks.
|
317
|
+
# 6 - Recaptcha Proxyless task.
|
318
|
+
# 7 - Funcaptcha task.
|
319
|
+
# 10 - Funcaptcha Proxyless task.
|
279
320
|
#
|
280
321
|
# @return [Hash] Information about the queue.
|
281
322
|
#
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module AntiCaptcha
|
2
|
+
class RecaptchaV3Solution < AntiCaptcha::Solution
|
3
|
+
attr_accessor :g_recaptcha_response, :g_recaptcha_response_md5
|
4
|
+
|
5
|
+
def initialize(task_result = nil)
|
6
|
+
super
|
7
|
+
|
8
|
+
if task_result
|
9
|
+
@g_recaptcha_response = task_result.api_result['solution']['gRecaptchaResponse']
|
10
|
+
@g_recaptcha_response_md5 = task_result.api_result['solution']['gRecaptchaResponseMD5']
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/anti_captcha/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anti_captcha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Infosimples
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
-
description:
|
55
|
+
description: Anti Captcha is an automated CAPTCHA solving service
|
56
56
|
email:
|
57
57
|
- team@infosimples.com.br
|
58
58
|
executables: []
|
@@ -77,6 +77,7 @@ files:
|
|
77
77
|
- lib/anti_captcha/models/fun_captcha_solution.rb
|
78
78
|
- lib/anti_captcha/models/image_to_text_solution.rb
|
79
79
|
- lib/anti_captcha/models/no_captcha_solution.rb
|
80
|
+
- lib/anti_captcha/models/recaptcha_v3_solution.rb
|
80
81
|
- lib/anti_captcha/models/solution.rb
|
81
82
|
- lib/anti_captcha/models/task_result.rb
|
82
83
|
- lib/anti_captcha/version.rb
|
@@ -99,8 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
100
|
- !ruby/object:Gem::Version
|
100
101
|
version: '0'
|
101
102
|
requirements: []
|
102
|
-
|
103
|
-
rubygems_version: 2.7.7
|
103
|
+
rubygems_version: 3.0.3
|
104
104
|
signing_key:
|
105
105
|
specification_version: 4
|
106
106
|
summary: Ruby API for Anti Captcha (CAPTCHA Solver as a Service)
|