Python通过百度api识别验证码,并结合selenium实现自动登陆功能

1.使用的库

使用的库:baidu-aip, pillow, selenium.
如果没有安装,可以在cmd中输入:

pip install baidu-aip
pip install pillow 
pip install selenium

2.实现功能

(1)账号密码的输入

在这里插入图片描述

以上是我校综合服务平台登陆网站的一部分,想要实现自动登陆,账号密码可以通过selenium的

find_element_by_id()
send_keys()

来进行自动输入账号密码。

功能实现代码如下:

account=driver.find_element_by_id('account')
account.send_keys('') #你自己的账号

password=driver.find_element_by_id('password')
password.send_keys('') #你自己的密码

关于element的详细使用方法请参考其他博文

(3) 验证码的获取与识别

验证码的识别请参考我的另一篇文章:
Python通过百度API进行文字识别(baidu-aip)一:简单识别验证码
这里简单描述如何获取二维码。

(一)

首先使用selenium的maxside_window()使得窗口最大化,接着使用save_screenshot()来保存网站截图。

driver=webdriver.Chrome()
driver.maximize_window()
time.sleep(1)
url='https://' #这里填你想要的网站
driver.get(url)
driver.save_screenshot('D:/PYTHON/baidu_ocr/save_screenshot.png') #储存地址可以选你喜欢的(尽量不要有空格和中文,有时会有奇奇怪怪的问题)

(二)

接着获取验证码在网站上具体位置,然后获取验证码的长宽,即可得出验证码的四个点的位置。用crop()函数处理刚刚获取的网站截图,从而获取验证码的图片。

code_ele = driver.find_element_by_id('codeimg')
print("验证码的坐标为:", code_ele.location)
print("验证码的大小为࿱
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Python Selenium 调用阿里 API 实现图片验证码识别,您需要先注册阿里云账户并开通 OCR 服务。然后,您可以按照以下步骤进行操作: 1. 安装阿里云 Python SDK 您可以使用以下命令进行安装: ``` pip install aliyun-python-sdk-core-v3 pip install aliyun-python-sdk-ocr ``` 2. 在 Python 中调用 OCR API 以下是一个示例代码,它可以将本地图片文件上传到阿里云 OCR 服务,并返回识别结果: ```python from aliyunsdkcore.client import AcsClient from aliyunsdkocr.request.v20191230 import RecognizeCharacterRequest # 阿里云 OCR API 配置 access_key_id = 'your_access_key_id' access_key_secret = 'your_access_key_secret' region_id = 'cn-shanghai' product_name = 'ocr' domain = 'ocr.cn-shanghai.aliyuncs.com' # 初始化阿里云 client client = AcsClient(access_key_id, access_key_secret, region_id) # 读取本地图片文件 with open('captcha.png', 'rb') as f: image_data = f.read() # 构造 OCR API 请求 request = RecognizeCharacterRequest.RecognizeCharacterRequest() request.set_ImageURL(image_data) request.set_accept_format('json') # 调用 OCR API 进行识别 response = client.do_action(request) # 解析识别结果 result = response.decode('utf-8') print(result) ``` 在上面的示例代码中,`access_key_id` 和 `access_key_secret` 是您的阿里云账户的 Access Key ID 和 Access Key Secret,`region_id` 是 OCR 服务所在的地域,`product_name` 是 OCR 服务的产品名称,`domain` 是 OCR 服务的 API 域名。 需要注意的是,OCR 服务支持的图片格式有限,只支持 JPEG、JPG、PNG、BMP 等常见格式。另外,OCR 服务的免费配额较低,需要购买更多的调用次数才能满足大规模的识别需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值