2captcha / 2captcha-python

Python 3 package for easy integration with the API of 2captcha captcha solving service to bypass recaptcha, hcaptcha, funcaptcha, geetest and solve any other captchas.
https://2captcha.com
MIT License
495 stars 93 forks source link

Cloudflare Turnstile solver giving ERROR_BAD_PARAMETERS #60

Open Binit-Dhakal opened 11 months ago

Binit-Dhakal commented 11 months ago

Hello there, I am trying to use this library to solve Cloudflare turnstile captcha for one of the sites. But I am getting ERROR BAD PARAMETERS as the error. Here is the full log.

result = solver.turnstile(
   ...:         sitekey='0x4AAAAAAAAjq6WYeRDKmebM',
   ...:         url='https://recorder.maricopa.gov/recdocdata/'
   ...: )
---------------------------------------------------------------------------
ApiException                              Traceback (most recent call last)
Cell In[3], line 1
----> 1 result = solver.turnstile(
      2         sitekey='0x4AAAAAAAAjq6WYeRDKmebM',
      3         url='https://recorder.maricopa.gov/recdocdata/'
      4 )

File ~/.local/lib/python3.8/site-packages/twocaptcha/solver.py:443, in TwoCaptcha.turnstile(self, sitekey, url, **kwargs)
    429 def turnstile(self, sitekey, url, **kwargs):
    430     '''
    431     Wrapper for solving Cloudflare Turnstile
    432 
   (...)
    440 
    441     '''
--> 443     result = self.solve(sitekey=sitekey,
    444                         url=url,
    445                         method='turnstile',
    446                         **kwargs)
    447     return result

File ~/.local/lib/python3.8/site-packages/twocaptcha/solver.py:492, in TwoCaptcha.solve(self, timeout, polling_interval, **kwargs)
    475 def solve(self, timeout=0, polling_interval=0, **kwargs):
    476     '''
    477     sends captcha, receives result
    478 
   (...)
    489     result : string
    490     '''
--> 492     id_ = self.send(**kwargs)
    493     result = {'captchaId': id_}
    495     if self.callback is None:

File ~/.local/lib/python3.8/site-packages/twocaptcha/solver.py:546, in TwoCaptcha.send(self, **kwargs)
    542 params = self.rename_params(params)
    544 params, files = self.check_hint_img(params)
--> 546 response = self.api_client.in_(files=files, **params)
    548 if not response.startswith('OK|'):
    549     raise ApiException(f'cannot recognize response {response}')

File ~/.local/lib/python3.8/site-packages/twocaptcha/api.py:76, in ApiClient.in_(self, files, **kwargs)
     73 resp = resp.content.decode('utf-8')
     75 if 'ERROR' in resp:
---> 76     raise ApiException(resp)
     78 return resp

ApiException: ERROR_BAD_PARAMETERS

Any help will be appreciated.

Thank you

Jackson-Vieira commented 5 months ago

i have the same issue

dh12306 commented 5 months ago

me too @nathanielobrown @henry-swe

dh12306 commented 5 months ago

@Binit-Dhakal have you solved ?

Binit-Dhakal commented 5 months ago

Hello @dh12306, Sorry but I was not able to bypass Cloudflare for that website. I was able to bypass it using an "undetected chromedriver", but it made our project's overall structure complicated as we were primarily using playwright and scrapy so we had to unfortunately skip this site. There must be other solutions for Cloudflare which I am not aware of.

Thank you

mauricio-gg commented 2 months ago

This issue is still around -- any updates on it?

devnos commented 1 week ago

I also wonder when this will be fixed and how to solve it?

cg-tester commented 1 week ago

Hello, guys, have you solved that Bad parameter error issue while bypassing turnstile? If you have solution, please let me know.

cg-tester commented 1 week ago

@Binit-Dhakal I can't bypass even by using undetected_chromedriver. Can you help me?

mauricio-gg commented 1 week ago

I am having problems as well, but I think CF may have changed something on their end. It was working fine a few days ago

cg-tester commented 1 week ago

@mauricio-gg did you try it with 2captcha?

mauricio-gg commented 1 week ago

@cg-tester I switched from using their python wrapper to my own functions to call on their API because the wrapper does not support all captcha types.

Anyway, I use 2captcha and I can see that params are getting passed and that I am receiving a response and using it in the callback function, but then we just end up back in the CF page. This was working fine and just stopped working recently.

cg-tester commented 1 week ago

@mauricio-gg can we meet on skype?