话不多说,今天就分享一下如何用Python实现点选验证码识别,小破站模拟登陆

开发环境

  • Python 3.8
  • Pycharm 2021.2
  • 谷歌浏览器
  • 谷歌驱动

模块使用

  • selenium >>> pip install selenium==3.141.0 指定版本安装
  • time
  • 打码平台

模块安装问题:

  • -如果安装python第三方模块:

1.win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
2.在pycharm中点击Terminal(终端) 输入安装命令

  • 安装失败原因

失败一: pip 不是内部命令

解决方法: 设置环境变量

失败二: 出现大量报红 (read time out)

解决方法: 因为是网络链接超时, 需要切换镜像源

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入

解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可) 卸载一个就好
或者你pycharm里面python解释器没有设置好

如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

实现步骤

  1. 打开浏览器
  2. 输入B站网站
  3. 点击登陆按钮
  4. 输入账号 / 输入密码
  5. 点击登陆按钮 弹出一个验证码
  6. 验证码识别
  7. 点击确定 登陆成功

实现代码

源码.点击领取即可

from selenium import webdriver

导入账号密码 自己写的文件

from password import VideoAccount, VideoPassword, account, password

导入时间模块

import time

导入打码平台代码

from chaojiying import Chaojiying_Client

导入selenium动作链

from selenium.webdriver import ActionChains

1. 打开浏览器

executable_path="chromedriver" 驱动路径

如何下载谷歌浏览器驱动

  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站网站

driver.get('https://***自己输入吧我放不了/')

3. 点击登陆按钮

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

4. 输入账号 / 输入密码

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

5. 点击登陆按钮

  • 先通过元素定位 登陆在什么地方
  • 然后再进行点击操作

点击登陆按钮 click 点击

driver.find_element_by_css_selector('.bili-header .header-login-entry').click()

延时等待 元素加载

time.sleep(1)

输入账号 send_keys 输入内容

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)

验证码识别

获取验证码图片

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

截图保存

img_label.screenshot('yzm.png')

调用超级鹰打码平台 固定写法, 别人代码给你写法

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

读取验证码图片

im = open('yzm.png', 'rb').read()

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

pic_str = chaojiying.PostPic(im, 9004)['pic_str']

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

python学习交流Q群:770699889 ### 源码领取
for index in pic_str.split('|'):
x = index.split(',')[0]
y = index.split(',')[1]
move_to_element_with_offset 在验证码上面进行点击操作    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, 自动发送直播弹幕机器人~ <切换账号>

有些地方不打*就发不出来,所以放张图片在这里,需要源码的朋友点击这里即可


import requests
import random
import time
content_list = ['主播真厉害', '爱了爱了', '666', '真棒']
num = 1
while True:if num == 10:breaktime.sleep(3)url = 'https://api.live.bilibili.com/msg/send'data = {'bubble': '0','msg': random.choices(content_list),'color': '16777215','mode': '1','fontsize': '25','rnd': '1668605910','roomid': '23875324',}headers = {'origin': 'https://***.com','referer': 'https://***.com/23875324?visit_id=40c7gu5p3620','user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36',}response = requests.post(url=url, data=data, headers=headers)print(response.text)num += 1

最后

今天的分享到这里就结束了

顺便给大家推荐一些Python视频教程,希望对大家有所帮助:

Python零基础教学合集

对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦
觉得我分享的文章不错的话,可以关注一下我,或者给文章点赞(/≧▽≦)/

Python实现点选验证码识别, B站模拟登陆相关推荐

  1. python点触图形验证码识别_GitHub - AaronJny/captcha_detection: 点选式验证码识别方案...

    方案要点: 点选式验证码的一般解决流程 如何使用 xyolo 训练自己的目标检测模型 不借助 OCR 功能解决中文验证码的识别问题 爬虫,反爬虫,反反爬虫--一个无限循环. 验证码是反爬虫手段中的常用 ...

  2. 江苏省电子税务局中文点选验证码识别研究

    最近突发奇想,想研究一下中文识别.因为之前研究过简单数字,字母类的识别,这种识别种类很少,数字就10个,字母顶多就26个.但是一到中文,常用字就有3000多个,数量级有了巨大提升.不知道传统的方法还是 ...

  3. Python爬虫过程中验证码识别的三种解决方案

    在Python爬虫过程中,有些网站需要验证码通过后方可进入网页,目的很简单,就是区分是人阅读访问还是机器爬虫.验证码问题看似简单,想做到准确率很高,也是一件不容易的事情.为了更好学习爬虫,后续推文中将 ...

  4. Python爬虫之网站验证码识别(三)

    视频链接:Python爬虫7天速成(2020全新合集)无私分享 Python: 章节p29-p31 文章目录 前言 一.云打码平台使用流程 操作流程 二.代码编写⭐ 2.1 使用超级鹰云平台 2.2 ...

  5. 基于Python的KNN数字验证码识别

    一.主要内容 本项目基于Python爬虫爬取验证码图片,对图片进行去噪.分割,通过KNN算法训练模型,实现验证其准确率. 二.系统流程 首先从指定的网页中爬取验证码图片数据,然后对数据进行一个去噪和分 ...

  6. Python vaptcha手势人机验证码识别

    本文仅供学习交流使用,如侵立删!demo下载见文末 识别效果: vaptcha手势人机验证码识别 验证码样式: 提取手势验证图片

  7. python爬取学校教务管理系统_python爬虫模拟登陆学校教务处

    最近在学python爬虫,我想教务处官网可能是每个学生第一个自己动手爬取的网站吧.而且很多学校的教务处没有验证码,很适合初学者练手. 环境准备 本次模拟登陆用到的库除了requests外还有lxml, ...

  8. Python爬虫(二十二)_selenium案例:模拟登陆豆瓣

    本篇博客主要用于介绍如何使用selenium+phantomJS模拟登陆豆瓣,没有考虑验证码的问题,更多内容,请参考:Python学习指南 #-*- coding:utf-8 -*-from sele ...

  9. 【在线可测】通用中文点选验证码识别

    8.15 小白救星(可视化操作) 支持任意中文点选,如果有识别率不佳的类别也可以联系作者添加. 1.本地提交一张大小的图片: 2. 点击[提交]即可: 测试地址: http://152.136.181 ...

最新文章

  1. java对托盘加监听右击报错_java实现系统托盘示例
  2. Kubernetes — 网络流量模型
  3. JavaSE中Map框架学习笔记
  4. 新鲜出炉!大规模神经网络最新综述!
  5. 使用Hanlp加载大字典
  6. 设计模式笔记七:桥接模式
  7. mysql sql sysdate_MySQL与Oracle SQL语言差异比较一览
  8. php类3个属性是哪3种,PHP获取类私有属性的3种方法
  9. openstack版本历史
  10. MySQL数据库查询重复数据办法
  11. 用php解二元一次方程程序,编写一个程序,求二元一次方程组,编写一个程序,求二元一次方程组的解...
  12. Protocol(协议)(二十)
  13. 【数字信号处理】基于matlab GUI正选信号时域+频域分析【含Matlab源码 887期】
  14. 给机器学习面试者的十项建议 | 面试官角度
  15. crypto661-rabin(网鼎杯2022-未完成)
  16. MYSQL 从PS说起,但不止于PS , IS 中innodb buffer 分析(5) -- 附加招聘DEVOPS DBA
  17. python中cv2、Image和plt的图片打开、显示和保存
  18. 再次慨叹生命的脆弱,我辈当惜之
  19. scala利用akka框架封装数据库操作api微服项目
  20. 洛谷P5266 【深基17.例6】学籍管理

热门文章

  1. 剑指offer试题系列
  2. 2019河北省大学生程序设计竞赛(重现赛)
  3. vue2知识点:浏览器本地缓存
  4. DirectX常用宏
  5. runtime一般用法和原理
  6. 计算机网络分层的原则
  7. 技能大赛训练:交换机端口带宽限速配置
  8. 【Dive into Deep Learning / 动手学深度学习】第二章 - 第六节:概率
  9. Electron.js指南——macOS Dock
  10. 一夜暴富的最简单方式是什么?