使用请求使用验证码解决脚本填写表单

时间:2018-03-12 10:17:30

标签: request captcha

所以基本上脚本运行得很好,我得到了我的Captcha已经解决的反馈。但问题在于脚本输入表单的其余部分输入。

知道它来自何处?

import requests
from random import randint
from time import sleep

# Add these values
API_KEY = 'ApiKey'  # Your 2captcha API KEY
site_key = 'SiteKey'  # site-key, read the 2captcha docs on how to get this
url = 'https://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]

# we make the payload for the post data here, use something like mitmproxy or fiddler to see what is needed
payload = {

    'username' : 'username',
    'password' : 'password' , 
    'password_again' : 'password' , 
    'email' : 'email@gmail.com' , 

    'key': 'value',
    'gresponse': recaptcha_answer # This is the response from 2captcha, which is needed for the post request to go through.

    }

# then send the post request to the url
response = s.post('https://site',payload, proxies=proxy)

1 个答案:

答案 0 :(得分:0)

您只需要将'gresponse'更改为'g-recaptcha-response',它就能完美运行