【Python项目】Python实现点选验证码识别, 模拟B站登陆 | 附源码 学习资料

news2025/1/11 23:40:41

前言

halo,包子们下午好
今天小编带大家是想b站模拟登陆,Python实现验证码识别
废话不多说,直接开整

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
公众号:Python日志

源码点击蓝色字体领取
Python零基础入门到精通视频合集

【整整800集】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(项目) >>> pythoninterpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径

pycharm如何安装插件?

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

实现步骤

  • 打开浏览器
  • 输入B站网站
  • 点击登陆按钮
  • 输入账号 / 输入密码
  • 点击登陆按钮 弹出一个验证码
  • 验证码识别
  • 点击确定 登陆成功

代码实现

源码获取点击蓝色字体领取

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. 驱动放在哪里
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循环遍历, 把坐标一个一个取出来

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:
        break
    time.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零基础入门到精通视频合集

【整整800集】Python爬虫项目零基础入门合集,细狗都学会了,你还不会?

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker Desktop下部署springboot项目

一、前言 本文是基于windows10版本下的docker desktop来演示的&#xff0c;所以你需要自行安装docker desktop,可以是windows,也可以是mac&#xff0c;根据自己的电脑进行选择即可。 二、创建springboot项目 创建一个springboot web项目&#xff0c;这个比较简单&#xff0c…

Vector-常用CAN工具 - CANoe入门到精通_04

前面已经介绍了Network Node节点的创建和配置&#xff0c;我想大家如果仔细研究下这块基本没什么问题&#xff0c;但是针对相应的CAPL编程该如何去做呢&#xff1f;今天这篇文章就是我们专门介绍在Network Node节点中常用的一些操作函数和使用技巧。 五、 Network Node相关CAPL…

如何在 Canvas 上实现图形拾取?

大家好&#xff0c;我是前端西瓜哥&#xff0c;今天来和大家说说 canvas 怎么做图形拾取。 图形拾取&#xff0c;指的是用户通过鼠标或手指在图形界面上能选中图形的能力。图形拾取技术是之后的高亮图形、拖拽图形、点击触发事件的基础。 canvas 作为一个过于朴实无华的绘制工…

【软件测试】老板:你测试,我放心。测试人的成功就是不做测试?

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试没价值&#xf…

[附源码]计算机毕业设计的党务管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Arco Pro最佳实践,路由与菜单

Arco Pro最佳实践&#xff0c;路由与菜单1.路由2.菜单3.测试1.路由 路由通常都和菜单绑定在一起&#xff0c;为了减少维护的量&#xff0c;Arco直接通过路由表生成了菜单。 首先&#xff0c;需要先了解一下路由表的配置 现在我们来解析一下仪表盘的路由代码&#xff08;dash…

Ranger集成Solr

前言 对已经在正常使用的Ranger开启Solr存储审计日志。 可以手动安装或者使用ranger admin自带的solr安装程序来安装。当然官网也说了&#xff0c;用户可以选择手动安装然后集成&#xff0c;只要你足够勇敢 &#xff1a;&#xff09; 我们这里选择使用Ranger自带的安装程序来…

深度学习之:强化学习 Reinforcement Learning

文章目录认识强化学习Sparse RewardSupervised Learning v.s. RLRL 玩游戏Policy-based & Value-basedPolicy-based训练模型的三步骤定义目标函数衡量目标函数的好坏RL 的目标函数的好坏&#xff08;reward 总和的期望&#xff09;如何求得 Rθˉ\bar{R_{\theta}}Rθ​ˉ​…

win10系统+3060显卡驱动+cuda11.5+cudnn8.3安装

显卡驱动和一些cuda库安装教程 目的 本教程为了让大家能更好的了解和能更快的对显卡进行环境配置。 需注意&#xff0c;本教程的配置仅仅针对显卡NVIDA RTX 3060。 其他显卡对应的配置的流程雷同&#xff0c;仅仅是环境版本的不同。 显卡需要牢固的插装在PCI/PCI-E&#xff0…

如何发现循环中的规律?动作分解

第五章循环结构程序设计 计算机最擅长的就是重复 重复再重复 循环 就是重复 使用循环结构的条件&#xff1a;2个&#xff1a; 1 需要三个或以上的 同样的操作 多个 三就是多&#xff0c;事不过三&#xff0c;三人成虎&#xff0c;三人行必有我师焉 也就是多个操作 2. 必…

如何在 Python 和 Pandas 中使用正则表达式

什么是正则表达式 Regex 代表Regular Expression&#xff0c;是一种用于在文本中搜索模式的表达式。简而言之&#xff0c;它将匹配与模式对应的每个单词或单词组。在 Python 中&#xff0c;您可以使用正则表达式来搜索单词、替换单词、匹配一个单词或一组单词。基本上所有事情…

C语言每日亿题(三)

文章目录一.二分查找二.第一个错误的版本三.搜索插入位置一.二分查找 原题传送门&#xff1a;力扣 题目&#xff1a; 在有序序列中查找&#xff0c;用二分的方法是非常有效的&#xff0c;但仅限于有序&#xff0c;如果是无序&#xff0c;二分查找是用不了的。 现在我直接来…

Spring cloud Ribbon负载均衡实战

Spring cloud Ribbon负载均衡一、简介二、负载均衡不同方案的区别1、集中式负载均衡&#xff08;服务器负载均衡&#xff09;2、进程内负载均衡&#xff08;客户端负载均衡&#xff09;三、负载均衡策略1、轮询策略&#xff08;默认&#xff09;2、权重轮询策略3、随机策略4、最…

导入vue+springboot前后端分离项目

1、环境 1、前端 nodejs 12.1.0vscode或者webstorm 2、后端 jdk1.8maven3.6.3&#xff08;3以上即可&#xff09;sqlyogidea 1、导入数据库 点击右键创建同名的数据库 将sql文件导入到数据库中 右键编辑文件&#xff0c;ctrla选中全部语句&#xff0c;ctrlc进行复制&…

Go 实现选择排序算法及优化

Go 实现选择排序算法及优化选择排序图片演示普通算法优化算法小结耐心和持久胜过激烈和狂热。 哈喽大家好&#xff0c;我是陈明勇&#xff0c;今天分享的内容是使用 Go 实现选择排序算法。如果本文对你有帮助&#xff0c;不妨点个赞&#xff0c;如果你是 Go 语言初学者&#xf…

一只脚踏入数据结构的大门,如何用C语言实现一个单链表(超超超详解,我的灵魂受到了升华)

目录 0.前言 1.什么是链表 1.1链表简介 1.2链表的分类 1.3为什么要有链表&#xff08;vs顺序表&#xff09; 1.3.1顺序表的缺点 1.3.2 链表的优点 1.3.3 顺序表的优点是链表的缺点 1.4.为什么选择实现结构最简单的单链表 2* 什么是单链表&#xff08;两种理解逻辑&…

window10+TensorRT-8.2.5.1+yolov5 v6.2 c++部署

一、准备工具 1.1、visual studio下载安装 参考&#xff1a;vs2019社区版下载教程&#xff08;详细&#xff09;_Redamancy_06的博客-CSDN博客_vs2019社区版 1.2、显卡驱动cudacudnn安装 参考&#xff1a;win10系统3060显卡驱动cuda11.5cudnn8.3安装_Bubble_water的博客-CS…

手写Spring3(Bean构造函数的类实例化策略)

文章目录目标项目结构一、代码实现1、新增getBean接口2、定义实例化策略接口3、JDK 实例化4、Cglib 实例化5、创建策略调用二、测试1、准备2、测试用例3、测试结果目标 上一篇文章&#xff0c;我们实例化对象&#xff0c;是通过无参的构造方式生成 所以今天是解决包含参数的构…

docker镜像的导入导出,并发布到服务器上

比如我本地的vue项目&#xff0c;先打包编译为一个镜像&#xff1a; docker build -t cvport . 不会编译的可以看我这篇文章&#xff1a;使用docker构建vue项目并成功运行在本地和线上_1024小神的博客-CSDN博客 开始将镜像保存为一个tar文件&#xff1a; docker save -o cvp…

基于java+springmvc+mybatis+jsp+mysql的高校学术交流平台

项目介绍 高校学术交流平台是基于java编程语言&#xff0c;mysql数据库&#xff0c;ssm框架&#xff0c;idea开发工具开发&#xff0c;本系统有管理员和用户两个角色&#xff0c;其中用户可以注册登陆系统&#xff0c;查看校园资讯&#xff0c;学术交流帖子&#xff0c;发布帖…