Python点选验证码识别,以小破站为例
创始人
2024-06-03 13:41:15

人生苦短 我用Python

在这里插入图片描述

你是不是要经常输入验证码?

登录网站时输完密码,
要输入一个单词或者几个歪歪扭扭不怎么好辨认的字母,
这个场景一定不陌生?

有没有思考为什么要输入验证码?验证码有什么作用?

本文仅作案例分析

在这里插入图片描述

开发环境:

  • Python 3.8

  • Pycharm 2021.2

  • 谷歌浏览器

  • 谷歌驱动

模块使用:

  • selenium >>> pip install selenium==3.141.0 指定版本安装

  • time

  • 打码平台

代码展示

点选验证码识别, 模拟登陆

导入模块

from selenium import webdriver
from password import VideoAccount, VideoPassword, account, password
import time
from chaojiying import Chaojiying_Client
from selenium.webdriver import ActionChains
###无偿领python源码籽料qun:9039,71231(去掉逗号就行)

1. 打开浏览器

executable_path=“chromedriver” 驱动路径

TIPS:如何下载谷歌浏览器驱动

  1. https://registry.npmmirror.com/binary.html?path=chromedriver/

  2. 选择和你浏览器版本最相近的 <大版本一样, 小版本最相近的就可以了>

  3. 驱动放在哪里

    和代码放在一起

    放在python安装目录里面

driver = webdriver.Chrome(executable_path=r'D:\download\anaconda\chromedriver.exe')

2. 输入/访问B站网站

在这里插入图片描述
3. 点击登陆按钮

1.先通过元素定位 登陆按钮在什么地方2.定位到之后, 在进行操作<点击操作>3.通过css选择器查找元素 --> 复制粘贴

4.输入账号 / 输入密码

1.先通过元素定位 账号输入框在什么地方2.先通过元素定位 密码输入框在什么地方3.然后再进行账号密码输入操作

5.点击登陆按钮

1.先通过元素定位 登陆在什么地方2.然后再进行点击操作
driver.find_element_by_css_selector('.bili-header .header-login-entry').click()time.sleep(1)driver.find_element_by_css_selector('div.bili-mini-account input').send_keys(VideoAccount)driver.find_element_by_css_selector('div.bili-mini-password input').send_keys(VideoPassword)
time.sleep(1)driver.find_element_by_css_selector('div.bili-mini-login-register-wrapper .login-btn').click()
time.sleep(2)
无偿领python源码籽料qun:9039,71231(去掉逗号就行)

验证码识别

1.获取验证码图片

img_label = driver.find_element_by_css_selector('.geetest_holder.geetest_silver')

2.截图保存

img_label.screenshot('yzm.png')

3.调用超级鹰打码平台

chaojiying = Chaojiying_Client(account, password, '96001')	#用户中心>>软件ID 生成一个替换 96001

4.读取验证码图片

im = open('yzm.png', 'rb').read()
pic_str = chaojiying.PostPic(im, 9004)['pic_str']

9004 表示验证码类型 42,241|42,241|59,86|144,115

for循环遍历, 把坐标一个一个取出来

for index in pic_str.split('|'):x = index.split(',')[0]y = index.split(',')[1]# move_to_element_with_offset 在验证码上面进行点击操作
###无偿领python源码籽料qun:9039,71231(去掉逗号就行)    ActionChains(driver).move_to_element_with_offset(img_label, int(x), int(y)).click().perform()time.sleep(1)
driver.find_element_by_css_selector('.geetest_commit_tip').click()

获取账号cookie, 自动发送直播弹幕机器人~ <切换账号>

自动发送弹幕

在这里插入图片描述


验证码的作用:

1. 为了防止机器冒充人类做暴力破解

2. 防止大规模在线注册滥用服务

3. 防止滥用在线批量化操作

4. 防止自动发布

5. 防止信息被大量采集聚合

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...