Python——超级鹰打码平台实现selenium对b站的自动化登陆

这篇具有很好参考价值的文章主要介绍了Python——超级鹰打码平台实现selenium对b站的自动化登陆。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一 、Chrome(谷歌)驱动器的下载

(一)驱动器版本选择

(二)下载Chrome驱动器

二、需要安装的库

(一)安装命令

(二)指定selenium版本原因

三、实现步骤

(一)导入相关库

(二)创建驱动器对象

(三)点击登录,并输入账号密码

(四)获取验证码框元素,并截图

四、完整代码 


一 、Chrome(谷歌)驱动器的下载

(一)驱动器版本选择

1.查看自己电脑Chrome浏览器版本

点击谷歌浏览器主页右上角三个点——>点击帮助——>关于Google Chrome(如下图:)

Python——超级鹰打码平台实现selenium对b站的自动化登陆

查看结果如下:

Python——超级鹰打码平台实现selenium对b站的自动化登陆

(二)下载Chrome驱动器

1.下载谷歌浏览器驱动器Chromedriver地址:

CNPM Binaries Mirror

2.驱动器下载版本需大于等于浏览器版本。

本机浏览器版本:107.0.5304.107

所以选择如下图版本下载:

Python——超级鹰打码平台实现selenium对b站的自动化登陆

 3.点击下载

Python——超级鹰打码平台实现selenium对b站的自动化登陆

 4.解压并放到Python项目下:

Python——超级鹰打码平台实现selenium对b站的自动化登陆

二、需要安装的库

如下图:

Python——超级鹰打码平台实现selenium对b站的自动化登陆

(一)安装命令

先点击terminal进入终端,输入pip install xxx(库的名称)

Python——超级鹰打码平台实现selenium对b站的自动化登陆

注:selenium需要指定版本3.141.0

 命令:pip install selenium==3.141.0

(二)指定selenium版本原因

后面在获取登录验证码元素时需使用find_element_by_css_selector的方法获取验证码元素。

若使用find_element方法项目最后一步会报错:如图

Python——超级鹰打码平台实现selenium对b站的自动化登陆

三、实现步骤

(一)导入相关库

# 时间模块
import time
# selenium的动作链模块
from selenium.webdriver import ActionChains
# 导入超级鹰打码平台模块(choajiying.py文件的Chaojiying_Client类)
from chaojiying import Chaojiying_Client
# 驱动器模块
from selenium import webdriver
from selenium.webdriver.common.by import By

注:chaojiying是打码平台提供的一个python文件后面会讲到。

(二)创建驱动器对象

# B站的网页地址
url = 'https://www.bilibili.com/'
# 创建驱动器对象
driver = webdriver.Chrome
# driver = webdriver.Chrome(executable_path='驱动器路径') 
# 传入URL地址
driver.get(url)

注:若驱动器没在项目路径下,需手动指定驱动器路径。 

(三)点击登录,并输入账号密码

1.打开网页版b站:哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

2.按F12(或右键点击检查)打开 开发者工具

3.定位元素

有爬虫基础的可以 自己写xpath、css等元素定位方法。

(1)点击登录按钮弹出登录框

点击开发者工具右上角的箭头(标签选择器)——>再点击登录按钮——>右键copy被选中元素的selector路径——直接粘贴到代码里——>调用click()方法——延迟3秒等待加载(如下图、代码)

Python——超级鹰打码平台实现selenium对b站的自动化登陆

# 点击登录按钮,获取登录页面
driver.find_element(By.CSS_SELECTOR,'#i_cecream > div.bili-feed4 > div.bili-header.large-header > div.bili-header__bar > ul.right-entry > li:nth-child(1) > li > div.right-entry__outside.go-login-btn > div').click()
time.sleep(3)

注:#i_cecream > div.bili-feed4 > div.bili-header.large-header > div.bili-header__bar > ul.right-entry > li:nth-child(1) > li > div.right-entry__outside.go-login-btn > div 即为selector路径

(2)输入账号和密码

点击开发者工具右上角的箭头(标签选择器)——>再点击账号、密码输入框——>分别右键copy被选中元素的selector路径——直接粘贴到代码里——>调用send_keys()方法——延迟1到2秒等待加载(如下图、代码)

Python——超级鹰打码平台实现selenium对b站的自动化登陆

# 输入账号,密码
driver.find_element(By.CSS_SELECTOR,'body > div.bili-mini-mask > div > div.bili-mini-content > div.bili-mini-login-wrapper > div.bili-mini-password-wrapper > div.bili-mini-account > input[type=text]').send_keys('账号')
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,'body > div.bili-mini-mask > div > div.bili-mini-content > div.bili-mini-login-wrapper > div.bili-mini-password-wrapper > div.bili-mini-password > div.left > input[type=password]').send_keys('密码')
time.sleep(2)

 (3)点击确定登录按钮

点击开发者工具右上角的箭头(标签选择器)——>再点击登录按钮——>右键copy被选中元素的selector路径——直接粘贴到代码里——>调用click()方法——延迟2秒等待加载(如下图、代码)

Python——超级鹰打码平台实现selenium对b站的自动化登陆

# 点击确定登录按钮
driver.find_element(By.CSS_SELECTOR,'body > div.bili-mini-mask > div > div.bili-mini-content > div.bili-mini-login-wrapper > div.bili-mini-login-register-wrapper > div.universal-btn.login-btn').click()
time.sleep(2)

(四)获取验证码框元素,并截图

点击开发者工具右上角的箭头(标签选择器)——>再点击验证码框——>右键copy被选中元素的selector路径——直接粘贴到代码里——>调用screenshot()方法进行截图并命名为yzm.png保存到该项目目录下(如下图、代码)

Python——超级鹰打码平台实现selenium对b站的自动化登陆

# 获取验证码的元素,并进行截图。
image = driver.find_element(By.CSS_SELECTOR,'body > div.geetest_panel.geetest_wind > div.geetest_panel_box.geetest_no_logo.geetest_panelshowclick > div.geetest_panel_next > div')
image.screenshot('yzm.png'))

Python——超级鹰打码平台实现selenium对b站的自动化登陆

打码平台的作用:获取验证码截图需要点击的汉字的坐标位置。

1.注册超级鹰账号

地址:超级鹰验证码识别-专业的验证码云端识别服务,让验证码识别更快速、更准确、更强大

2.获取题分(1元=1000题分)

3.下载python开发文档

点击开发文档——>选择python语言——>点击这里下载——>解压并将chaojiying.py文件放到python项目下

Python——超级鹰打码平台实现selenium对b站的自动化登陆

 Python——超级鹰打码平台实现selenium对b站的自动化登陆

 4.创建软件ID

进入用户中心——>点击软件ID——>再点击生成一个软件ID——>输入任意的软件名称——>点击提交会生成一个如下图的软件ID

Python——超级鹰打码平台实现selenium对b站的自动化登陆

 

 5.将chaojiying.py文件导入到项目文件中(如下代码)

# 导入超级鹰打码平台模块(choajiying.py文件的Chaojiying_Client类)
from chaojiying import Chaojiying_Client

6.导入超级鹰类

并输入账号,密码,软件ID,以二进制的方式读取验证码图片,获取验证码的坐标字典,并取出坐标值。

# 导入超级鹰,并输入账号,密码,软件ID
chaojiying = Chaojiying_Client('账号', '密码', '软件ID')  # 用户中心>>软件ID 生成一个替换 96001
im = open('yzm.png', 'rb').read()  # 以二进制的方式读取验证码
result = chaojiying.PostPic(im, 9004)['pic_str'] #获取验证码的坐标字典,并取出坐标值

Python——超级鹰打码平台实现selenium对b站的自动化登陆

 pic_str为返回的坐标值并通过键取出值。

7.点击验证码

对返回的验证码坐标值进行处理,得到每个验证码的x轴和y轴。

创建动作链对象通过move_to_element_with_offset方法依次点击验证码。

for index in result.split('|'): #以"|"进行分割,得到一个列表,并循环出每一个字的坐标
    x = index.split(',')[0] # 得到x轴的坐标
    y = index.split(',')[1] # 得到y轴的坐标
    action = ActionChains(driver) #创建动作链对象
    action.move_to_element_with_offset(image,int(x),int(y)).click().perform()
    # image:验证码的元素框;x:验证码的横轴;y:验证码的纵轴
    time.sleep(1)

8.点击确认完成登录

time.sleep(1) # 加载一秒后在进行点击
driver.find_element(By.CSS_SELECTOR,'body > div.geetest_panel.geetest_wind > div.geetest_panel_box.geetest_panelshowclick > div.geetest_panel_next > div > div > div.geetest_panel > a > div').click()

Python——超级鹰打码平台实现selenium对b站的自动化登陆

四、完整代码 

# _*_ coding : utf-8 _*_
# 时间模块
import time
# selenium的动作链模块
from selenium.webdriver import ActionChains
# 导入超级鹰打码平台模块(choajiying.py文件的Chaojiying_Client类)
from chaojiying import Chaojiying_Client
# 驱动器模块
from selenium import webdriver
from selenium.webdriver.common.by import By
# B站的网页地址
url = 'https://www.bilibili.com/'
driver = webdriver.Chrome() # 若驱动器没在
driver.get(url)
# 点击登录按钮,获取登录页面
driver.find_element(By.CSS_SELECTOR,'#i_cecream > div.bili-feed4 > div.bili-header.large-header > div.bili-header__bar > ul.right-entry > li:nth-child(1) > li > div.right-entry__outside.go-login-btn > div').click()
time.sleep(3)
# 输入账号,密码
driver.find_element(By.CSS_SELECTOR,'body > div.bili-mini-mask > div > div.bili-mini-content > div.bili-mini-login-wrapper > div.bili-mini-password-wrapper > div.bili-mini-account > input[type=text]').send_keys('B站账号')
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,'body > div.bili-mini-mask > div > div.bili-mini-content > div.bili-mini-login-wrapper > div.bili-mini-password-wrapper > div.bili-mini-password > div.left > input[type=password]').send_keys('密码')
time.sleep(2)
# 点击确定登录按钮
driver.find_element(By.CSS_SELECTOR,'body > div.bili-mini-mask > div > div.bili-mini-content > div.bili-mini-login-wrapper > div.bili-mini-login-register-wrapper > div.universal-btn.login-btn').click()
time.sleep(2)
# 获取验证码的元素,并进行截图。
image = driver.find_element(By.CSS_SELECTOR,'body > div.geetest_panel.geetest_wind > div.geetest_panel_box.geetest_panelshowclick > div.geetest_panel_next > div')
image.screenshot('yzm.png')
# 导入超级鹰,并输入账号,密码,软件ID
chaojiying = Chaojiying_Client('超级鹰账号', '密码', '软件ID')  # 用户中心>>软件ID 生成一个替换 96001
im = open('yzm.png', 'rb').read()  # 以二进制的方式读取验证码
result = chaojiying.PostPic(im, 9004)['pic_str'] #获取验证码的坐标字典,并取出坐标值
for index in result.split('|'): #以"|"进行分割,得到一个列表,并循环出每一个字的坐标
    x = index.split(',')[0] # 得到x轴的坐标
    y = index.split(',')[1] # 得到y轴的坐标
    action = ActionChains(driver) #创建动作链对象
    action.move_to_element_with_offset(image,int(x),int(y)).click().perform()
    # image:验证码的元素框;x:验证码的横轴;y:验证码的纵轴
    time.sleep(1)
time.sleep(1) # 加载一秒后在进行点击
driver.find_element(By.CSS_SELECTOR,'body > div.geetest_panel.geetest_wind > div.geetest_panel_box.geetest_panelshowclick > div.geetest_panel_next > div > div > div.geetest_panel > a > div').click()

注:该文章仅提供思路,如有错误欢迎指出。文章来源地址https://www.toymoban.com/news/detail-406340.html

到了这里,关于Python——超级鹰打码平台实现selenium对b站的自动化登陆的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python调用selenium库实现自动化

    以下是一个使用Python实现简单自动化的示例代码,该代码使用selenium库来自动化执行Google搜索并返回搜索结果的标题和URL  简单注释: 导入 selenium 库和 selenium.webdriver.common.keys 模块。 创建一个 WebDriver 对象,指定使用Chrome浏览器。 使用 driver.get() 方法访问Google搜索页面。 使用

    2023年04月11日
    浏览(79)
  • python+selenium实现UI自动化(一)

    selenium官方网站 selenium ide 录制工具。 火狐/google/edge插件 selenium webdriver   结合代码来编写自动化用例。提供很多在浏览器上的操作的api,本文主要记录此项的学习过程 selenium grid   分布式。火狐/google/edge上同时运行。把所有用例拆分到多设备上运行,运行效率更高,更快。

    2023年04月24日
    浏览(42)
  • Python利用Selenium实现自动化验证登录

    Python里面使用Selenium是一个很重要的自动化测试模块,我们可以用它写一个验证登录脚本,有了这个可以用来保存cookie信息等,下面是一个简单的demo:

    2024年02月15日
    浏览(44)
  • selenium python 实现基本自动化测试的示例代码

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年02月02日
    浏览(53)
  • 使用Python+selenium实现第一个自动化测试脚本

    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近在学web自动化,记录一下学习过程。 此处我选用python3.6+selenium3.0,均用

    2024年02月03日
    浏览(56)
  • 教你怎么用python selenium实现自动化测试

    打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,下

    2024年02月02日
    浏览(50)
  • jenkins+selenium+python实现web自动化测试

    jenkins+selenium可以做到对web自动化的持续集成。 Jenkins的基本操作: 新建视图: 新建job: 可以选择构建一个自由风格的软件项目或者复制已有的item 安装Jenkins插件, SSH plugin ,Email Extension Plugin , Hudson Seleniumhq plugin 点击系统管理-管理插件 在可选插件面板Filter中输入插件名,

    2024年02月02日
    浏览(56)
  • Python Selenium实现自动化测试及Chrome驱动使用!

    本文将介绍如何使用Python Selenium库实现自动化测试,并详细记录了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简介 Python Selenium是一个用于Web应用

    2024年03月10日
    浏览(65)
  • Python Selenium实现自动化测试及Chrome驱动使用

    本文将介绍如何使用 Python   Selenium 库实现 自动化测试 ,并详细 记录 了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简介 Python Selenium是一个用于

    2024年02月03日
    浏览(60)
  • Python+VS Code+Selenium+EdgeDriver实现网页自动化

    一:安装Selenium 这里用 pip 安装Selenium 3.3.1 1,打开 CMD ,输入 pip install selenium==3.3.1 2,出现 Successfully Install 后关闭窗口( 我是卸载后安装,第一次安装的界面与此不同 )  3,使用pip show selenium 可以查看版本 注意:非必要不安装4.0及以上版本,新版本调用Pack时语法发生改动

    2024年01月19日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包