首页 > 其他分享 >selenium登录B站,实现验证码识别登录

selenium登录B站,实现验证码识别登录

时间:2024-10-16 21:46:55浏览次数:7  
标签:登录 selenium 验证码 element browser1 sleep time div

Selenium+超级鹰 登录B站

需要使用到的包

  • selenium
  • time
  • chaojiying
import time
from chaojiying import Chaojiying_Client
from selenium.webdriver import Chrome
from selenium.webdriver import ActionChains

注意,如果没有使用过超级鹰的经验可以先看一下开发文档 ,下载下来看看怎么用就行

在这里插入图片描述

注册登录后可以购买题分,然后生成软件ID

在这里插入图片描述

然后在跳转的页面点击生成一个软件ID

在这里插入图片描述
在这里插入图片描述

之后就会有下面这样的界面和信息

在这里插入图片描述

之后回到pycharm中进行代码的编写

注意,需要将你下载的chaojiying.py文件放到和你自己写的python文件一个目录下

在这里插入图片描述

一些其它注意事项

在这里插入图片描述

在这里插入图片描述

B站的验证码目前是几个随机文字进行点击,所以我们使用的是9004验证码类型,还有,完整代码里留有文字的换成自己的超级鹰的id(看下图码住的就是你自己的用户名),密码,以及软件ID (刚才让你自己记住的)

在这里插入图片描述

完整代码

# @Editor    : 百年
# @FileName  :selenium登录b站.py
# @Time      :2024/10/15 21:17
import time
from chaojiying import Chaojiying_Client
from selenium.webdriver import Chrome
from selenium.webdriver import ActionChains
# 创建浏览器对象
browser1 = Chrome(executable_path='../others/chromedriver.exe')

# 获取b站的链接
url = 'https://www.bilibili.com/'
browser1.get(url)

# 定位到b站的登录按钮
login_btn = browser1.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[1]/ul[2]/li[1]/li/div/div')

# 点击登录按钮
login_btn.click()

time.sleep(2)
# 定位到输入用户名的输入框
username_input = browser1.find_element_by_xpath('/html/body/div[4]/div/div[4]/div[2]/form/div[1]/input')

# 之后进行用户名的输入
usernm = input('输入你的b站用户名/账户>>')
username_input.send_keys(usernm)
time.sleep(1)
# 定位到输入密码的用户框
password_input = browser1.find_element_by_xpath('/html/body/div[4]/div/div[4]/div[2]/form/div[3]/input')
passwd = input('请输入你的b站密码:')
password_input.send_keys(passwd)
time.sleep(2)

# 定位到登录按钮并点击登录
dl_btn = browser1.find_element_by_xpath('/html/body/div[4]/div/div[4]/div[2]/div[2]/div[2]')
time.sleep(2)
dl_btn.click()

# selenium中心思想回顾:可见即可得
# 对于selenium不需要记住那么多属性

# 定位到完整的验证码对话框
time.sleep(3)
code_tag = browser1.find_element_by_xpath('/html/body/div[5]/div[2]/div[6]/div/div')
# 打印查看
#print(code_tag)

time.sleep(6)
# # 识别验证码(使用打码平台进行验证码识别)
# # 然后定位到图片,直接将图片作为png格式,对比学习之前的使用回顾,selenium在某些方面还是有点方便的
im = code_tag.screenshot_as_png  # 我们直接调用将其保存成功图片
chaojiying = Chaojiying_Client('你的超级鹰用户名', '你的超级鹰密码', '你的超级鹰软件id')
result = chaojiying.PostPic(im, 9004)

# print(result['pic_str'])
print(result)
'''
{'err_no': 0, 'err_str': 'OK', 
'pic_id': '1266120541083430028', 
'pic_str': '214,209|133,170|254,89|60,234',
 'md5': 'ce0580f7b163af15f5be1623b07a50f9'}'''
# 切分坐标,注意,切分的返回值是一个列表
code_xy = result['pic_str'].split('|')
print(code_xy)
# # 创建动作链
for pos in code_xy:
    time.sleep(1)
    pos_lst = pos.split(',') #利用逗号切分xy,返回的是x,y坐标组成的列表
    print(pos_lst)
    # 注意还需要将其强转为整数类型
    x = int(pos_lst[0])
    y = int(pos_lst[1])
    # 让动作链来点击定位到的坐标,并点击
    # 注意这里用的不是move_by_offset,因为其是根据整个屏幕左下角来作为起始点的
    # 而move_to_element_offset是以我们指定的element标签为起始点的
    # 这个例子中我们是以定位到的验证码图片标签的左下角为坐标原点的
    ActionChains(browser1).move_to_element_with_offset(to_element=code_tag,xoffset=x,yoffset=y).click().perform()

time.sleep(1)

# 点击确认按钮

su_btn = browser1.find_element_by_xpath('/html/body/div[5]/div[2]/div[6]/div/div/div[3]/a')

su_btn.click()

点赞收藏,您的关注是我创作的动力

请添加图片描述

标签:登录,selenium,验证码,element,browser1,sleep,time,div
From: https://blog.csdn.net/weixin_45938063/article/details/142992071

相关文章

  • C#图像处理与OCR:从验证码识别到文本提取 Tesseract实现验证码识别:本地化
    以下示例代码中,涉及到的知识点主要包括图像处理、验证码识别、Base64转换、图像预处理等。以下是详细的知识点梳理,以及相应的代码示例:1.图像加载与保存使用Image.FromFile加载本地图像,并使用Bitmap进行图像操作。Bitmap是图像处理的主要类,支持各种图像操作。代码......
  • 一:MYsql安装登录,服务开启和停止,和连接数据库
    一:MYsql安装登录,服务开启和停止,和连接数据库一、卸载不要的环境下面演示安装的版本为5.7版本,安装先把身份切换为root,方便操作首先先检测自己的环境,是否存在mariadb和系统自带MySQL,如果存在需要进行停止相应服务psajx|grepmariadbpsajx|grepmysql我的环境没有mariadb......
  • 识别图形验证码 (Elixir 示例)
    安装所需依赖在你的mix.exs文件中添加以下依赖:elixirdefpdepsdo[{:httpoison,"~>1.8"},{:mogrify,"~>0.7"},{:tesseract,"~>0.1"}]更多内容联系1436423940end然后运行mixdeps.get来安装这些库。下载并保存验证码图片使用HTTPoison下载验证码图片并保存......
  • 识别图形验证码 (Scala 示例)
    安装所需依赖在你的build.sbt文件中添加以下依赖:scalalibraryDependencies+="org.scalaj"%%"scalaj-http"%"2.4.2"下载并保存验证码图片使用scalaj-http下载验证码图片并保存到本地:scalaimportscalaj.http._importjava.nio.file.{Files,Paths}objectCaptch......
  • 识别图形验证码 (Julia 示例)
    安装所需依赖在JuliaREPL中使用以下命令安装所需的包:juliausingPkgPkg.add("HTTP")Pkg.add("Images")Pkg.add("Tesseract")下载并保存验证码图片使用HTTP下载验证码图片并保存到本地:juliausingHTTPusingFileIOfunctiondownload_captcha(url::String,save_pa......
  • 网站登录密码被修改了怎么办?
    当您发现网站登录密码被修改时,可以按照以下步骤尝试解决问题:检查是否自己忘记:回想近期是否有更改过密码的行为,有时可能是自己忘记了。使用找回密码功能:访问网站的登录页面,通常会有“忘记密码”或“找回密码”的链接。按照提示输入您的注册邮箱或手机号码。验证身份后......
  • 公司网站源码修改?公司网站怎么登录修改?
    公司网站的源码修改通常涉及到网站内容更新、功能调整或页面设计优化等工作,这需要通过一定的步骤来完成。以下是进行公司网站源码修改的一般流程:获取访问权限:如果你是内部员工,通常需要向IT部门申请网站后台管理系统的账号和密码。对于外部开发者,可能需要与公司的项目负责人......
  • 网站修改登录密码?如何修改网站后台信息?
    要修改网站后台的信息,通常涉及以下几个步骤:登录后台:打开浏览器并输入网站后台的地址。输入用户名和密码进行登录。定位到需要修改的信息:根据后台管理系统的布局,找到相应的模块或菜单项,比如“系统设置”、“用户管理”、“内容管理”等。寻找具体的子菜单或功能按钮,例......
  • Selenium操作:测试form表单
    from表单是经常测试的用例,用户登录、注册等都会用到form表单,本文简单设计了一个用户登录的form表单,并对该form表单进行测试一、自定义form表单1、用到的组件如下图,图中定义了一个登录界面的form表单,用到的表单元素:type="text";type="submit"2、代码示例新建HTML文件文......
  • Linux系统创建新用户后使用新用户登录输入回退键无法回退显示^H怎么解决
    现象使用新建用户远程ssh登录后在页面输入命令后无法是回退键删除,删除会显示^H原因没有对应的bash使用默认的bash为/bin/sh修复方法手动加载bash$bash使用管理员修改文件修改bash#liuym:x:1002:1002::/home/liuym:/bin/bash在创建用户的时候指定bash......