首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中使用2 2captcha

在Python中使用2 2captcha
EN

Stack Overflow用户
提问于 2019-02-28 17:30:33
回答 1查看 5K关注 0票数 8

我对2 2captchas和Python完全陌生,所以我想弄清楚这两种方法是如何工作的。现在,我正在编写python脚本,并在spyder上运行它来解析图片captcha。我的代码(使用2 2captcha )返回站点的html作为返回响应。它试图注册一个站点,但最终失败的主要任务是解决captcha问题。我的代码看起来像这样

代码语言:javascript
复制
import requests
from time import sleep

API_KEY = '2captchaapi'  # Your 2captcha API KEY
site_key = '2captcha site key'  # site-key, read the 2captcha docs on how to get this
url = 'site'  # example url
proxy = 'proxy'  # example proxy

proxy = {'http': 'http://' + proxy, 'https': 'https://' + proxy}

s = requests.Session()


# here we post site key to 2captcha to get captcha ID (and we parse it here too)
captcha_id = s.post(
    "http://2captcha.com/in.php?key={}&method=userrecaptcha&googlekey={}&pageurl={}".format(API_KEY, site_key, url), proxies=proxy).text.split('|')[1]
# then we parse gresponse from 2captcha response
recaptcha_answer = s.get("http://2captcha.com/res.php?key={}&action=get&id={}".format(API_KEY, captcha_id), proxies=proxy).text
print("solving ref captcha...")
while 'CAPCHA_NOT_READY' in recaptcha_answer:
    sleep(5)
    recaptcha_answer = s.get("http://2captcha.com/res.php?key={}&action=get&id={}".format(API_KEY, captcha_id), proxies=proxy).text

recaptcha_answer = recaptcha_answer.split('|')[1]

print(recaptcha_answer)

payload = {
    'signup-form[votes]':                       '',
    'signin-form[subs]':                        '',
    'signin-form[post_referer]':                'site',
    'signup-form[step2][hidden_captcha]':       '',
    'signup-form[details][login]':              'name@gmail.com',
    'signup-form[details][profile_name]':       'name1',
    'signup-form[details][password]':           'secret44%',
    'signup-form[details][password_confirm]':   'secret44%',
    'signup-form[details][tos_pp]':             'on',
    'signup-form[step2][optional][age]':        '24',
    'signup-form[step2][optional][sex]':        'Man',
    'signup-form[step2][optional][country]':    'france',
    'signup-form[step2][optional][language]':   'french',
    'signup-form[step2][profilepic][file]':     '',
    'g-recaptcha-response':                     recaptcha_answer
}


# then send the post request to the url
response = s.post(url, payload, verify=False)


print(response.text)

请让我知道如何使用这段代码解决图像上限,如果我使用正确的工具来解决这个captcha挑战。

EN

回答 1

Stack Overflow用户

发布于 2021-10-21 06:54:07

您可以使用这个python库- 2 2captcha python。您希望从映像captcha中提取文本,以便在安装和配置步骤之后使用以下代码。

要绕过普通的captcha (图像上的扭曲文本),请使用以下方法。此方法也可用于识别图像上的任何文本。

代码语言:javascript
复制
result = solver.normal('path/to/captcha.jpg', param1=..., ...)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54931199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档