Skip to content

Commit 40d9410

Browse files
Merge pull request #110 from 2captcha/RC-2938-cybersiara
RC-2938-cybersiara
2 parents ba2ea80 + 9fe05d6 commit 40d9410

File tree

5 files changed

+98
-2
lines changed

5 files changed

+98
-2
lines changed

README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ Examples of API requests for different captcha types are available on the [Pytho
4242
- [Cutcaptcha](#cutcaptcha)
4343
- [Tencent](#tencent)
4444
- [Datadome](#datadome)
45+
- [CyberSiARA](#cybersiara)
4546
- [Other methods](#other-methods)
4647
- [send / get_result](#send--get_result)
4748
- [balance](#balance)
@@ -428,6 +429,18 @@ result = solver.datadome(captcha_url="https://geo.captcha-delivery.com/captcha/?
428429
param1=..., ...)
429430
```
430431

432+
### CyberSiARA
433+
434+
<sup>[API method description.](https://2captcha.com/2captcha-api#cybersiara)</sup>
435+
436+
Use this method to solve CyberSiARA. Returns a token.
437+
```python
438+
result = solver.cybersiara(master_url_id='tpjOCKjjpdzv3d8Ub2E9COEWKt1vl1Mv',
439+
pageurl='https://demo.mycybersiara.com/',
440+
userAgent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36',
441+
param1=..., ...)
442+
```
443+
431444
## Other methods
432445

433446
### send / get_result
@@ -501,7 +514,8 @@ except TimeoutException as e:
501514
## Proxies
502515

503516
You can pass your proxy as an additional argument for the following methods: recaptcha, funcaptcha, geetest, geetest v4, hcaptcha,
504-
keycaptcha, capy puzzle, lemin, atbcaptcha, turnstile, amazon waf, mtcaptcha, friendly captcha, cutcaptcha, Tencent, DataDome.
517+
keycaptcha, capy puzzle, lemin, atbcaptcha, turnstile, amazon waf, mtcaptcha, friendly captcha, cutcaptcha, Tencent, DataDome, cybersiara.
518+
505519

506520
The proxy will be forwarded to the API to solve the captcha.
507521

examples/cybersiara.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import sys
2+
import os
3+
4+
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))
5+
6+
from twocaptcha import TwoCaptcha
7+
8+
# in this example we store the API key inside environment variables that can be set like:
9+
# export APIKEY_2CAPTCHA=1abc234de56fab7c89012d34e56fa7b8 on Linux or macOS
10+
# set APIKEY_2CAPTCHA=1abc234de56fab7c89012d34e56fa7b8 on Windows
11+
# you can just set the API key directly to it's value like:
12+
# api_key="1abc234de56fab7c89012d34e56fa7b8"
13+
14+
api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
15+
16+
17+
solver = TwoCaptcha(api_key)
18+
19+
try:
20+
result = solver.cybersiara(
21+
master_url_id='tpjOCKjjpdzv3d8Ub2E9COEWKt1vl1Mv',
22+
pageurl='https://demo.mycybersiara.com/',
23+
userAgent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36',
24+
)
25+
26+
except Exception as e:
27+
sys.exit(e)
28+
29+
else:
30+
sys.exit('result: ' + str(result))

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,6 @@ def get_version():
3636
'2captcha', 'captcha', 'api', 'captcha solver', 'reCAPTCHA', 'hCaptcha',
3737
'FunCaptcha', 'Geetest', 'image captcha', 'Coordinates', 'Click Captcha',
3838
'Geetest V4', 'Lemin captcha', 'Amazon WAF', 'Cloudflare Turnstile',
39-
'Capy Puzzle', 'MTCaptcha', 'Friendly Captcha', 'Tencent', 'Cutcaptcha', 'DataDome'],
39+
'Capy Puzzle', 'MTCaptcha', 'Friendly Captcha', 'Tencent', 'Cutcaptcha', 'DataDome', 'cybersiara'],
4040
python_requires='>=3.6',
4141
test_suite='tests')

tests/test_cybersiara.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env python3
2+
3+
import unittest
4+
5+
try:
6+
from .abstract import AbstractTest
7+
except ImportError:
8+
from abstract import AbstractTest
9+
10+
11+
class CybersiaraTest(AbstractTest):
12+
13+
def test_all_params(self):
14+
params = {
15+
'master_url_id': 'tpjOCKjjpdzv3d8Ub2E9COEWKt1vl1Mv',
16+
'pageurl': 'https://demo.mycybersiara.com/',
17+
'userAgent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
18+
}
19+
20+
sends = {
21+
'method': 'cybersiara',
22+
'master_url_id': 'tpjOCKjjpdzv3d8Ub2E9COEWKt1vl1Mv',
23+
'pageurl': 'https://demo.mycybersiara.com/',
24+
'userAgent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
25+
}
26+
27+
return self.send_return(sends, self.solver.cybersiara, **params)
28+
29+
30+
if __name__ == '__main__':
31+
unittest.main()
32+

twocaptcha/solver.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,27 @@ def datadome(self, captcha_url, pageurl, userAgent, proxy, **kwargs):
831831
userAgent=userAgent,
832832
proxy=proxy,
833833
**kwargs)
834+
return result
835+
836+
def cybersiara(self, master_url_id, pageurl, userAgent, **kwargs):
837+
'''Wrapper for solving CyberSiARA captcha.
834838
839+
Parameters
840+
__________
841+
master_url_id : str
842+
The value of the MasterUrlId parameter from the request to API/CyberSiara/GetCyberSiara.
843+
pageurl : str
844+
Full URL of the page with captcha.
845+
userAgent : str
846+
User-Agent of your browser.
847+
proxy : dict, optional
848+
{'type': 'HTTPS', 'uri': 'login:password@IP_address:PORT'}.
849+
'''
850+
result = self.solve(method='cybersiara',
851+
master_url_id=master_url_id,
852+
pageurl=pageurl,
853+
userAgent=userAgent,
854+
**kwargs)
835855
return result
836856

837857
def solve(self, timeout=0, polling_interval=0, **kwargs):

0 commit comments

Comments
 (0)