转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 当前的 »

人机助手下载地址:

很多用户不知道其他软件(比如selenium)如何配置人机助手进行识别,并且获取识别状态,其实原理很简单,切换到验证码的iframe页anchor,获取元素recaptcha-anchor的属性aria-checked就可以了。

代码:

import time
import requests
from selenium import webdriver

options = webdriver.ChromeOptions()
# 加载验证码插件,这里是以zip格式的文件进行加载
options.add_extension('selenium/yescap_v2.0.beta.zip')
driver = webdriver.Chrome('selenium/chromedriver.exe', options=options)

driver.get("https://www.google.com/recaptcha/api2/demo")

# 切换到勾选框
iframe = driver.find_element_by_css_selector('iframe[src*="anchor"]')
driver.switch_to.frame(iframe)

# 获取勾选框的打勾状态
for i in range(30):
    anchor = driver.find_element_by_id('recaptcha-anchor')
    is_checked = anchor.get_attribute("aria-checked")
    print('当前识别状态:', is_checked)
    time.sleep(3)

输出

当前识别状态: false
当前识别状态: false
当前识别状态: false
当前识别状态: false
当前识别状态: true
当前识别状态: true
当前识别状态: true

下载

如果使用普通的selenium会被检测,可以使用 undetected_chromedriver 这个库避免被检测

import time
import requests
import undetected_chromedriver as uc

options = uc.ChromeOptions()
# 加载验证码插件,这里是以目录的形式加载,注意区别
options.add_argument('--load-extension=D:\test\yescap_v2.0.beta')
driver = uc.Chrome(options=options, use_subprocess=True, version_main=103)

driver.get("https://www.google.com/recaptcha/api2/demo")
# ……

进阶玩法
识别完成后,网页上会有识别完成的token,这个token就可以拿去用做协议提交。

具体操作:

切换到主空间,再切换到bframe框架页,获取ID为recaptcha-token的value就是token了。

document.querySelector("#recaptcha-token").value
  • 无标签