anti_captcha 2.1.0 → 2.2.1
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 +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)
|