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

news2024/12/30 2:07:04

目录

    • 1. 图片选择类验证码
    • 2. 滑块验证码
    • 3. 滑块出错,不加载
    • 总结


欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中

1. 图片选择类验证码

我们这里查看超级鹰文档
图片验证码返回的是一个 dic 结构为 x1,y1|x2,y2|x3,y3 ····
表示一个个要点击选择的图片的坐标,使用一个for循环遍历即可
在这里插入图片描述

# 用超级鹰去识别图片验证码
dic = chaojiying.PostPic(verify_img_element.screenshot_as_png, 软件id)
result = dic['pic_str']  # x1,y1|x2,y2|x3,y3  识别图像验证码得到的是一个个的
rs_list = result.split("|")
for rs in rs_list:  # x1,y1
    p_temp = rs.split(",")
    x = int(p_temp[0])
    y = int(p_temp[1])

2. 滑块验证码

取得滑块的xpath //*[@id="nc_1_n1z"]
在这里插入图片描述

  • 整个滑块宽度 340,我们一般拖动300就够了
    在这里插入图片描述

ActionChains是一种事件链库,链式编程,通过.连接各个任务指令,顺次执行,任务链末尾是.perform()

drag_and_drop_by_offset表示按下并拖拽参数为(对象,拖拽x,拖拽y)

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver import Chrome

btn = web.find_element_by_xpath('//*[@id="nc_1_n1z"]') #找到滑块对象
ActionChains(web).drag_and_drop_by_offset(btn, 300, 0).perform() #滑块向右移动300

3. 滑块出错,不加载

原因是被检测到是selenium自动化的操作了。

  • chrome的版本大于等于88
option = Options()
# option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_argument('--disable-blink-features=AutomationControlled')

web = Chrome(options=option)
  • chrome的版本号如果小于88,其实现在很少用这种浏览器了
web = Chrome()

web.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
   navigator.webdriver = undefined
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
web.get(ur)

总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2023 mzh

Crated:2023-3-1

欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』


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

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

相关文章

【SAM系列】An Alternative to WSSS? An Empirical Study of SAM on WSSS Problems

论文链接:https://arxiv.org/pdf/2305.01586.pdf 论文代码:暂无 目的 WSSS旨在弱标签的情况下,生成高质量的分割伪标签,然后用于全监督的语义分割训练。本文探索用SAM来生成伪标签来替代WSSS方案。 为什么不直接用SAM分割而利用…

《面试1v1》synchronized

源码都背下来了,你给我看这 我是 javapub,一名 Markdown 程序员从👨‍💻,八股文种子选手。 面试官: 你好,我看到你的简历上写着你熟悉 Java 中的 “synchronized” 关键字。你能给我讲讲它的作…

chatgpt赋能Python-python3反转字符串

Python3反转字符串技巧:让你的代码更高效! 你是否曾经在编程时需要对字符串进行反转,但却不知从何入手?Python3提供了简单易用的方法,帮助你更快地反转字符串。本文将介绍Python3中字符串反转的方法以及如何在代码中利…

chatgpt赋能Python-python3如何安装numpy

如何安装numpy? 介绍 在Python编程中,NumPy是使用最广泛的库之一。NumPy是数学和科学计算中的核心模块,主要用于处理数字数据,包括数组计算、线性代数、傅里叶变换、随机数生成等任务。在Python编程中,使用NumPy可以…

chatgpt赋能Python-python3小游戏

Python3小游戏:为你的休闲时光增添乐趣 如果你正处于寻找一款简单好玩的小游戏,那么Python3小游戏将是你的不二之选。作为一名有10年Python编程经验的工程师,我可以说Python3小游戏是一款非常有趣、挑战性适中、易于上手的游戏。接下来&…

工作流 jbpm(图文并茂)

文章目录 1 工作流概述2 jBPM概述3 jBPM开发环境搭建及其配置3.1 准备工作3.2 搭建jBPM开发环境3.3 加入jar包 4 系统数据库表介绍4.1 建表4.2 数据库逻辑关系4.2.1 资源库与运行时的表4.2.2 历史数据表 4.3 表结构4.4 流程操作与数表交互说明 5 相关概念6 流程图说明6.0 快速上…

【学习笔记】Rider调试unity【 联调、断点调试等】(决定弃用vscode了)

目录 一 弃用vscode原委二 Rider调试Unity2.1 启动调试2.2 pausepoint 暂停点2.2.1 使用pausepoint2.2.2 pausepoint与breakpoint的区别 2.3 不同run configuration区别 三 Rider编辑3.1 补充 四 总结 转载请注明出处:🔗https://blog.csdn.n…

头歌计算机组成原理实验—运算器设计(4)第4关:16位快速加法器设计

第4关:16位快速加法器设计 实验目的 帮助学生理解成组进位产生函数,成组进位传递函数的概念,熟悉 Logisim 平台子电路的概念,能利用前述实验封装好的4位先行进位子电路以及4位快速加法器子电路构建16位、32位、64位快速加法器&a…

Android 12.0 原生SystemUI下拉通知栏UI背景设置为圆角背景的定制(一)

1.前言 在12.0的系统rom定制化开发中,在原生系统SystemUI下拉状态栏的通知栏的背景是白色四角的背景,由于在产品设计中,需要把四角背景默认改成圆角背景,所以就需要分析系统原生下拉通知栏的每条通知的默认背景,然后通过systemui的通知流程,设置默认下拉状态栏UI中的通知…

java+nodejs+vue+python+php家教信息管理系统

任何网友都可以自由地查看、搜索、发布该家教信息平台的信息。该平台是区别于传统的家教中介的服务平台。学生可以免费查看网站上的家教信息,挑选适合自己的家教;教师可以免费查看网站上的需求信息,挑选适合自己的学生;学生可以发…

chatgpt赋能Python-python3安装scrapy

Python3安装Scrapy:提高爬虫效率的关键 如果你正在从事数据科学、数据分析工作,或者需要收集并存储某些特定网站的数据,Scrapy是一个值得尝试的Python3框架。Scrapy是一个开源的Web爬虫框架,可以方便、高效、快速地对数据进行收集…

Rust每日一练(Leetday0005) 罗马数字、公共前缀、三数之和

目录 13. 罗马数字转整数 Roman to Integer 🌟 14. 最长公共前缀 Longest Common Prefix 🌟 15. 三数之和 3Sum 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日…

Qt/QML编程学习之心得:颜色编码方案RGB+YUV+HSI等(八)

说到Human-Machine Interaction 人机交互界面或者说GUI,那么第一反映可能是窗口、各种控件、各种图片,但是所有这些都还需要一个更底层的内容,那就颜色。不管是窗口还是控件,颜色是其最基本的一个属性。 牛顿三棱镜色散实验,发现光的色彩奥妙:当一束白光通过三棱镜时,它…

chatgpt赋能Python-python3控制摄像头拍照

Python3 控制摄像头拍照 介绍 Python3 是一种高级编程语言,被广泛应用于机器学习、人工智能、Web 开发等领域。控制摄像头拍照是 Python3 中非常常见的需求,例如监控、照片拍摄等等。 如何控制摄像头拍照 在 Python3 中,我们可以利用 Ope…

【高效科研工具(一):chatGPT(各种高效网站大集合)】

高效科研工具(一):chatGPT(各种高效网站大集合) 目录 0、前言 1、chatGPT介绍 2、chatGPT官网 3、各种衍生网站(🤩🤩🤩🤩重头戏!!&a…

插入排序、选择排序、冒泡排序小结(45)

小朋友们好,大朋友们好! 我是猫妹,一名爱上Python编程的小学生。 和猫妹学Python,一起趣味学编程。 今日主题 插入排序、选择排序、冒泡排序有什么区别? 原理不同 插入排序是将未排序的元素逐个插入到已排序序列中…

王道考研——计算机网络1.1计算机网络概述

文章目录 0.认识计算机网络1. 计算机网络体系结构1.1概念及功能计算机网络的概念计算机网络的功能计算机网络的发展总结 1.2组成与分类计算机网络的组成计算机网络的分类总结 1.3标准化工作及相关组织(408大纲已删)标准化工作标准化工作的相关组织总结 1…

总结856

学习目标: 月目标:5月(张宇强化前10讲,背诵15篇短文,熟词僻义300词基础词) 周目标:张宇强化前3讲并完成相应的习题并记录,英语背3篇文章并回诵 每日必复习(5分钟&#…

chatgpt赋能Python-python3怎么降到2

Python3如何降级到Python2 Python3是Python语言的最新版本,但是一些旧的项目或者库可能只支持Python2,这就需要将Python3降级到Python2。本文将介绍如何在MacOS和Windows系统上进行Python3到Python2的降级,并提供详细的步骤和注意事项。 Ma…

chatgpt赋能Python-python3自定义排序

Python3自定义排序 在Python3中,可以使用内置的sorted()函数或list.sort()方法对列表进行排序。这些方法通常基于默认排序规则,即按照元素的字符串表示进行排序。不过,有时候我们需要按照自己定义的规则对列表进行排序。这就需要使用自定义排…