在使用服务解决验证码时遇到问题

时间:2020-01-18 10:12:00

标签: python selenium captcha

我使用某种硬编码方法来获取站点密钥,但是由于len始终相同,所以可以。 之后,我使用2captcha API Documentation,以便可以发布密钥并获取验证码的令牌。我面临两个主要问题: 1)我总是收到site-key错误的错误,但是根据他们的例子,sitekey是正确的(他们的sitekey的长度为40个字符,我的sitekey的长度也为40个字符) 2)我尝试从外部创建POST函数,然后尝试查看它是否是一个错误,但是使用Py2Captcha文档,我总是会遇到以下错误:enter image description here 这是验证码抓取。

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Captcha Key~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
url=driver.find_element_by_css_selector("iframe[role='presentation']").get_attribute('src')
print(url)
keygoogle = url[53:93]
print('Site Key = ', keygoogle)

这是验证码密钥解决模块:

answer = ""
answer_id = 0
api_key = '--------------------------------'
data_post = {'key': api_key, 'method': 'userrecaptcha', 'googlekey': keygoogle, "pageurl": mainurl}
response = requests.post(url = 'https://2captcha.com/in.php', data = data_post )
print(response)
print("Waiting for server response.")
for x in range(15):
    time.sleep(1)
    if x == 5:
        print('Downloading info..')
    elif x == 10:
        print('Processing info..')
    elif x == 14:
        print('Solving captcha..')
data_request = {
    'key': api_key,
    'action': answer,
    'id': answer_id,
}
requests.get(url ='https://2captcha.com/res.php', data=data_request)
print(answer)

def captcha():
    google_key = keygoogle
    url = mainurl
    client = TwoCaptchaClient(client_key=api_key)
    task = GoogleReCaptchaV2Task(googlekey=google_key, pageurl=mainurl)
    job = client.create_task(task)
    token = job.get_solution_response()
    return token
print(captcha())

我没有包含的是令牌被放入答案字段的部分,我不确定该怎么做,但是我会确定的方法!

编辑: 这是我从打印出来的价值: enter image description here

response = requests.post(url = 'https://2captcha.com/in.php', data = data_post )

这就是我从print('Site Key = ', keygoogle)获得的价值

站点密钥= Lc3HAsUAAAAACsN7CgY9MMVxo2M09n_e4heJEiZ&

1 个答案:

答案 0 :(得分:0)

该站点密钥末尾的&绝对不应该存在。使用正则表达式,而不要使用索引。

相关问题