我有一个代码来解决recaptcha使用python selenium ,一切正常。
我只想改进它>每当运行这段代码时,我想确保js元素 ___grecaptcha_cfg.clients[0].I.I
是正确的。此元素可以不时旋转为不同的值,例如: ___grecaptcha_cfg.clients[0].J.J
___grecaptcha_cfg.clients[0].Gq.X. ___grecaptcha_cfg.clients[0].aa.l.
您可以看到最后两项可以更改。
我只知道如何在chrome上手动检查,看图片,
在此处输入图像描述
但是用 selenium 检查一下怎么样?这样我就可以自动应用到我的代码中。
这是我的代码,有很多代码,但是你可以看到我在selenium中应用这个js元素的最后一行:
# request post send to 2captcha------------------
my_request_post = rf"https://2captcha.com/in.php" \
rf"?key={my_api}" \
rf"&method={method}" \
rf"&invisible=1" \
rf"&googlekey={data_sitekey}" \
rf"&pageurl={my_url}"
# request ticket from recaptcha v2-----------------------
startime = time.time()
print('start request to 2captcha')
resp = requests.get(my_request_post)
if resp.text[0:2] != 'OK':
quit('Service error. Error code:' + resp.text)
print(f'return captcha_id: {resp.text}')
captcha_id = resp.text[3:] # get the ticket
# the request post with ticket ask for solving recaptcha----------------------
request_2captcha = rf'https://2captcha.com/res.php' \
rf'?key={my_api}' \
rf'&action=get' \
rf'&json=0' \
rf'&id={captcha_id}'
# as offical document suggested, wait for 15 secs-----------------
print('wait for 15 sec')
time.sleep(15)
for i in range(1, 50):
time.sleep(5) # wait 5 sec
resp = requests.get(request_2captcha)
print(f'attempt request cycle: {i} | resp.text: {resp.text}')
if resp.text[0:2] == 'OK':
break
# vialidation code that apply back to the site----------------------------
result = resp.text[3:]
driver.execute_script(f'document.getElementById("g-recaptcha-response").innerHTML = "{result}"')
driver.execute_script(f"___grecaptcha_cfg.clients[0].I.I.callback = '{result}'")
暂无答案!
目前还没有任何答案,快来回答吧!