Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版)

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

注意:这里采用的是新版的selenium有关事项

1.旧版FindsByID、FindsByCss等已被删除,并替换为Find_element(By.ID,' '),Find_elements(By.Xpath," ")等实例。
2.move_to_element_with_offset的方法定位基准位置从左上角修改为中心

导入相关包

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

1.创建浏览器对象,访问网址,点击登录图标,输入账号、密码,点击登录

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

  观察登录图标,账号、密码,登录按钮相关的元素

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

使用find_element()方法来获取上面提到的各个元素

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

2.获取验证码相关截图:

点击登录后,可以得到验证码的元素

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

用screenshot()方法截下这张图

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

3.使用超级鹰识别出验证码的相关坐标

下载压缩包

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

下载完会有一个chaojiying.py程序,我们导入到我们的的案例中,Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

调用包中的相关方法

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

修改上文的参数,注:'软件ID'要去用户中心-软件ID新建一个。

4.使用动作链对验证码图片进行点击事件

上面的result返回的是坐标Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

我们需要对坐标使用split()方法进行拆分后遍历得到每一组的x,y数值,然后新建一个动作链对象,

调用move_to_element_with_offset(验证码元素,x坐标,y坐标)方法注:新版的selenium把基准位置从左上角改为了中心所以方法里的x,y坐标需要减少长,宽的1/2。)

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

5.完成登录

点击确认,完成登录

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版),selenium,测试工具,python,pycharm,爬虫

源码:文章来源地址https://www.toymoban.com/news/detail-764056.html

from selenium import webdriver
from time import sleep
from PIL import Image
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from 动态加载数据处理.chaojiying import Chaojiying_Client
bro=webdriver.Edge()
bro.get('https://www.bilibili.com/?spm_id_from=444.41.0.0')
bro.maximize_window()
button_login=bro.find_element(By.CLASS_NAME,'header-login-entry')
button_login.click()
sleep(2)
account=bro.find_element(By.XPATH,'/html/body/div[4]/div/div[4]/div[2]/form/div[1]/input')
account.send_keys('账号')
password=bro.find_element(By.XPATH,'/html/body/div[4]/div/div[4]/div[2]/form/div[3]/input')
password.send_keys('密码')
sleep(2)
button_denglu=bro.find_element(By.CLASS_NAME,'btn_primary')
button_denglu.click()
sleep(1)
# 对当前页面进行截图保存
# bro.save_screenshot('aa.png')
# sleep(2)
#确定验证码图片对应的左上角和右下角坐标(裁剪对应的区域)
img_element=bro.find_element(By.CLASS_NAME,'geetest_widget')
img_element.screenshot('yzm.png')
# location=img_element.location#loction_img返回的是字典{x:?,y:?},返回的事x,y坐标
# size=code_img_ele.size#size返回的也是字典{height:?,width:?},返回的是高度,宽度坐标
# #将左上角和右下角的坐标放入一个元组里
# range1=(int(location['x']),int(location['y']),int(location['x']+size['width']),
#        int(location['y']+size['height']))
# #至此整张图片区域已经确定
# sleep(2)
# i=Image.open('./aa.png')
# #裁剪后的名字
# code_img_name = './yzm.png'
# #开始裁剪
# frame=i.crop(range1)
# #裁剪后保存到文件里
# frame.save(code_img_name)
sleep(1)
chaojiying = Chaojiying_Client('账号', '密码', '软件id')  # 用户中心>>软件ID 生成一个替换 96001
im = open('yzm.png', 'rb').read()  # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
result=chaojiying.PostPic(im,9004)['pic_str']
print(result)
list=result.split('|')
img_element_half_width=float(img_element.size['width'])/2
img_element_half_height=float(img_element.size['height'])/2
for li in list:
    x=int(li.split(',')[0])
    y=int(li.split(',')[1])
    action=ActionChains(bro)
    action.move_to_element_with_offset(img_element,int(x-img_element_half_width),
                                       int(y-img_element_half_height)).click().perform()
    #img_element是验证码元素框,x,y是坐标
    sleep(1)
button_confirm=bro.find_element(By.CLASS_NAME,'geetest_commit')
button_confirm.click()
sleep(3)
bro.close()

到了这里,关于Python爬虫+selenium+超级鹰实现自动登录b站(最新可用版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 最新Python 实现自动登录抖音(京东),实现滑块自动滑过

    爬虫的过程中会遇到很多反爬的网站,今天就来讲讲字节系下抖店的滑块验证码的破解流程,谷歌驱动chromedriver路径此处忽略,自己可以去配置,希望对有疑问的同学有帮助,仅作参考。 一、使用Python+selenium实现此功能 1.既然用到selenium,第一步就要先配置初始化selenium 代码

    2023年04月08日
    浏览(25)
  • Python——超级鹰打码平台实现selenium对b站的自动化登陆

    目录 一 、Chrome(谷歌)驱动器的下载 (一)驱动器版本选择 (二)下载Chrome驱动器 二、需要安装的库 (一)安装命令 (二)指定selenium版本原因 三、实现步骤 (一)导入相关库 (二)创建驱动器对象 (三)点击登录,并输入账号密码 (四)获取验证码框元素,并截图

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

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

    2024年02月15日
    浏览(35)
  • python+selenium绕过滑块验证,实现自动登录

    实现taobao自动化登录,当用webdriver打开淘宝时,滑块验证一直失败,手动滑都会失败。因为淘宝会检测window.navigator.webdriver,控件检测到你是selenium进入,所以就会弹出滑块验证。只需要绕过检测就能实现自动登录 验证了两种方法可以跳过: 第一种是给浏览器加启动参数,开

    2024年02月12日
    浏览(30)
  • Python用selenium实现自动登录和下单的项目实战

    前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以

    2024年01月24日
    浏览(29)
  • Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)(1)

    browser.find_element_by_xpath(‘.//ul[@id=“headerNav”]/li[4]’).click() 8.点击群管理之后,进入群管理界面,我们需要的是成员管理 WebDriverWait(browser, 1000).until( EC.presence_of_all_elements_located( (By.CLASS_NAME, ‘color-tit’) ) ) browser.find_element_by_class_name(‘color-tit’).click() 9.点击成员管理之后会重新

    2024年04月28日
    浏览(34)
  • Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解

    是否还在为网页测试而烦恼?是否还在为重复的点击、等待而劳累?试试强大的 Selenium !让你的网页自动化测试变得轻松有趣! Selenium 是一个强大的自动化测试工具,它可以让你直接操控浏览器,完成各种与网页交互的任务。通过使用 Python 的 Selenium 库,你可以高效地实现

    2024年02月10日
    浏览(40)
  • Python使用Selenium自动实现表单填写之龙年纪念币预约(附源码,源码有注释解析,已测试可用

    声明 :本文只做技术交流,不可用代码为商业用途,文末有源码下载,已测试可用。 Part 1 配置文件改写(源码 有详细的注释说明 读取配置文件,自己组数据库,录入信息 配置文件 Part 2 主函数 每一期的xpath路径都不一样 所以需要提前去网站获取 新的 Xpath 具体方法如下

    2024年02月01日
    浏览(24)
  • 一个完整Python实战项目:selenium识别验证码实现自动登录,自动操作浏览器获取某东数据

    最近都没啥时间,很久没更新了。 今天分享一下,如何用selenium识别验证码,实现自动登录以及获取数据。 目标:某东 话不多说直接开始 环境 Python 3.10 Pycharm 模块使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 输入cmd 输入安

    2024年02月04日
    浏览(32)
  • Python爬虫教程:Selenium模拟登录

    Selenium(本文基于python3.8)是一个功能强大的自动化测试工具,它可以用于模拟用户在浏览器中的行为,比如点击、输入、滚动等等,也可用于模拟登录网站并进行爬虫操作。本教程将详细介绍如何使用Python编写一个模拟登录地爬虫,使用XPath等多种元素匹配方法。 在开始之

    2024年02月04日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包