python小白自己查阅资料写的程序,若有缺陷和不足烦请各位大佬指正!加上了selenium反识别。采用的是模拟用户登录的方式(非cookie) ,验证码部分采用超级鹰识别接口,返回坐标,再使用动作链点击指定文字,通过机器人检测。

# Author:Yuan Jinmin
# -*- coding = utf-8 -*-
# @Time  :2022/2/16 14:47
# @Author:YJM
# @Site  :
# @File  :seleniumDemo.py
# @Software: IntelliJ IDEA
import timefrom selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver# !!!需要自行导入超级鹰if __name__ == '__main__':url = 'https://passport.bilibili.com/login'username = 'B站账号' # !!!要修改成自己的password = '密码'# 隐藏webdriver方法,不用,会出现手机验证码界面options = webdriver.ChromeOptions()options.add_experimental_option('excludeSwitches', ['enable-automation'])  # 设置为开发者模式options.add_argument("--disable-blink-features=AutomationControlled")driver = webdriver.Chrome(executable_path='!!!改成自己的谷歌驱动位置', options=options)driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{'source': '''Object.defineProperty(navigator, 'webdriver', { get: () =>undefined })'''})# # 最大化窗口# driver.maximize_window()driver.get(url=url)time.sleep(3)# 传入用户名driver.find_element_by_xpath('//*[@id="login-username"]').send_keys(username)time.sleep(0.5)# 传入密码driver.find_element_by_xpath('//*[@id="login-passwd"]').send_keys(password)time.sleep(0.5)# 点击登录按钮driver.find_element_by_xpath('//*[@id="geetest-wrap"]/div/div[5]/a[1]').click()# 截取验证码图片time.sleep(2)code_img_element = driver.find_element_by_xpath('/html/body/div[2]/div[2]')code_img = code_img_element.screenshot('code.png')  # 一气呵成# # 获取验证码图片框的左上角的坐标# location = code_img.location# print('code_img location:', location)# # 验证码的长和宽# size = code_img.size# print('code_img size:', size)# 交给超级鹰识别验证码,使用需要自行导包,官网有示例下载# 调用超级鹰平台接口识别验证码print('正在识别验证码...')chaojiying = chaojiying.Chaojiying_Client('超级鹰用户名', '密码','软件ID')  # !!!要修改成自己的 用户名,密码,软件ID ,用户中心>>软件ID 生成一个替换 96001im = open('code.png', 'rb').read()  # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//answer = chaojiying.PostPic(im, 9004)  # 9004  坐标多选,返回1~4个坐标,如:x1,y1|x2,y2|x3,y3  25# print(answer)  # 1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()# 输出示例:# {'err_no': 0, 'err_str': 'OK', 'pic_id': '9168012087860700001', 'pic_str': '7261', 'md5': 'bf67edb09a6d203c34ac591c824d995b'}# 得到验证码code = answer['pic_str']# 坐标coordinate = [xy.split(sep=',') for xy in code.split(sep='|')]  # [['1', '2'], ['3', '4'], ['1', '2'], ['3', '4']]print('解析验证码成功!坐标为:', coordinate)# 遍历坐标列表,使用动作链点击列表中每个坐标,达到点击验证码的目的for xy in coordinate:x = xy[0]y = xy[1]ActionChains(driver).move_to_element_with_offset(code_img_element, x, y).click().perform()time.sleep(0.5)driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[6]/div/div/div[3]/a').click()

利用python、selenium和超级鹰 实现B站自动登录相关推荐

  1. 使用python selenium爬取淘宝商品信息 自动登录淘宝和爬取某一宝贝的主图,属性图和详情图等等

    selenium作为一个自动化测试工具非常好用,谁用谁知道啊. 先说如何登录淘宝,淘宝现在直接用会员名和密码登录会有滑块验证,找了网上说的几种方法和自己尝试了一番效果还是不太理想,实测过程中,即使滑块 ...

  2. python京东自动签到_利用python Selenium实现自动登陆京东签到领金币功能

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

  3. python截长图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

  4. 利用python+selenium爬取derwent数据库上的patents

    利用python+selenium爬取derwent数据库上的patents 需求: 登陆web of science,并进入derwent数据库,按照公司excel列表依次进行搜索,并将所有搜索道德 ...

  5. python京东自动签到领金豆_[宜配屋]听图阁 - 利用python Selenium实现自动登陆京东签到领金币功能...

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

  6. 利用python+selenium带上cookies自动登录bilibili

    利用python+selenium带上cookies自动登录bilibili 环境 selenium的安装 思路 第一部分:手动登录,保存cookies 第二部分:读取cookies自动登录 环境 环 ...

  7. python+selenium+chrome实现淘宝购物车秒杀自动结算

    python+selenium+chrome实现淘宝购物车秒杀自动结算 一.所需环境 二.安装 三.代码 最后run()一把就ok了!! 之前总是想要买aj,但是淘宝店铺每次发售手动抢的时候一般都会被 ...

  8. win10系统,python3.8环境,chrome浏览器,selenium框架,实现腾讯视频自动登录

    文章目录 环境 代码演示 总结 环境 win10系统,python3.8环境,chrome浏览器,selenium框架,实现腾讯视频自动登录 代码演示 from selenium import web ...

  9. 『python爬虫』26. selenium与超级鹰处理复杂验证码的处理(保姆级图文)

    目录 1. 图片选择类验证码 2. 滑块验证码 3. 滑块出错,不加载 总结 欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 1. 图片选择类验证码 ...

  10. socket模拟http的登陆_利用 Python + Selenium 实现自动登陆签到

    工具是人手的延伸,用的好了,它可以成为我们身体的一部分,用不好,它就只是别人身体的一部分. 这是众所周知的道理,但是落实到每个人的具体实践上却是千差外别. 比如我们熟悉的 web 自动化测试工具 Se ...

最新文章

  1. ADT,Eclipse启动时在Android SDK Content Loader0%无法编译
  2. 11月27号例会记录
  3. Matlab-PEAKS函数曲线
  4. Pandas高级教程之:category数据类型
  5. 数千万智能手机集体脱机?罪魁祸首是……
  6. python基于百度地图获取指定的经纬度信息
  7. 备忘录——贝叶斯网络与贝叶斯深度网络学习思路总结
  8. 如何在本地运行jar文件
  9. python将多个pdf合并并保存书签
  10. 录音软件行业调研报告 - 市场现状分析与发展前景预测
  11. 《Java编程那些事儿----这是一本书》
  12. 微信注册验证成功之后不跳转_想申请小号的网友福利来了:绑定了微信的手机号怎么注册新的微信...
  13. a73*2+a53*2指的是什么_考验你脑细胞的时候到了!杨花落尽子规啼,闻道龙标过五溪中的子规指的是什么?|考验|脑细胞-360GAME...
  14. Mongodb被黑经历
  15. linux虚拟网桥 docker,Docker 使用自定义网桥
  16. 使用u盘安装Red Hat Enterprise 6.0
  17. FreeRTOS学习记录(四):任务、任务切换(难点)
  18. 神起网络游戏如何推广代理?
  19. 题外话之怎么脱离旱鸭子
  20. 基于Bluemix快速构建部署一款Java小程序——微博影响力分析器

热门文章

  1. 数值计算之第四期:追赶法和范数
  2. AE Face Tools 4 脸部工具扩展(中英对照)
  3. DHTMLX Grid Crack
  4. 最新版本kindle安卓app导入mobi图书和设置自定义字体的方法2020.01.09
  5. VScode如何在浏览器中打开html文件
  6. linux ubuntu 安装odb,Ubuntu 使用C++ ORM框架--ODB
  7. 怎么才能编辑PDF里面的内容
  8. g729编解码的总结
  9. eclipse查看ftl文件
  10. cad小插件文字刷_CAD实用小插件,这是一串让你效率提升相见恨晚的代码!