Python —— 验证码的处理执行JavaScript语句
1、验证码的处理
1、概述&绕过验证码的方案
很多的网站都在登录页面加入了识别文字,识别图片,拖动拼图的验证码方式来防止爬虫、恶意注册 等,如果是做自动化,需要绕过验证码才能进入下一步操作,那么有4种方案可以解决我们遇到的问题。
2、绕过验证码的方案
1、测试环境去除验证码
可以和开发进行沟通,但是仅限于测试环境哦
2、万能验证码 (推荐)
3、通过添加cookie绕过登录
cookie是一门客户端技术,一般是由服务器生成返回给浏览器客户端来保存的,并且cookie是以 键值对的形式保存在浏览器客户端的,每一个cookie都会有名称,值,过期时间...
如下便是一个cookie存储的位置,包含过期时间等:

1、cookie有很多使用场景,在项目中比较常见的有:
1. 登录记住用户名
2. 记录用户浏览记录
2、Cookie种类
1、会话cookie:保存在内存中,浏览器关闭就清除
2、持久cookie:保存在硬盘中,失效时间到之后就会清除
3、添加cookie解决验证码思路
在登录某个网站,如果勾选【自动登录】,当下次再访问该网站时就自动处于登录状态。这个功能其实 就是将用户信息保存在浏览器的cookie中,当再次访问网站时,浏览器直接使用本地保存的cookie用户 信息进行登录。
使用这个原理,以我们在代码中也可以将用户信息添加到cookie中,再刷新浏览器即可,示例代码:
Cookie cookie = new Cookie("XXX","XXXXXX");
driver.manage().addCookie(cookie);
4、实战
如下2个例子是使用cookie登录成功的案例
from time import sleep
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
# driver.add_cookie({"name":"BAIDUID_BFESS","value":"3B4FF41DB8055719BCC9FC2F05286F2C:SL=0:NR=10:FG=1"})
# 以下2个都可以登录,都已做修改,需要更换value值为自己的哦
driver.add_cookie({"name":"BDUSS","value":"lqNHpnQXp5T0dNOENIZjFZUmxYMzlDOVhqRHh2QXVKNk1aRDM1VjFrR0xFeDFsRVFBQUFBJCQAAAAAAAAAAAEAAADI2G41wO7o97e8Y2NjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuG9WSLh——————————————————————"})
# driver.add_cookie({"name":"BDUSS_BFESS","value":"lqNHpnQXp5T0dNOENIZjFZUmxYMzlDOVhqRHh2QXVKNk1aRDM1VjFrR0xFeDFsRVFBQUFBJCQAAAAAAAAAAAEAAADI2G41wO7o97e8Y2NjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA-------WSLhvVkd2"})
sleep(3)
driver.refresh()
sleep(3)
driver.close()
from time import sleep
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://www.ketou--pai.com/#/XXXXe")# 以下可以
driver.add_cookie({"name":"token","value":"239d9d96328871ab2a5190d9e3f38fae042a3fa6aec691a4319b9------------ed30"})
sleep(5)
driver.refresh()
sleep(3)
driver.close()
扩展知识:
1、cookie失效的条件
1、手动退出登录,那么当前的cookie就会失效
2、cookie已经超过有效期
2、为什么会话cookie不能作为登录的鉴权代替用密码和密码完成登录操作
因为会话cookie生命周期存在与一次会话中(浏览器打开网页->关闭),只能作用于当前的浏览器
4、通过OCR识别技术-识别图片的里面关键信息(文字/数字)
参考:http://testingpai.com/article/1677826568289
3、一些扩展知识
2、JavaScript操作(在Python中执行JavaScript语句)
通过在Selenium WebDriver中执行JavaScript可以大大增强Selenium的能力,Selenium对于一些特殊 场景的元素操作无能为力,我们可以借助JavaScript来处理,比如点击、修改元素属性、滚动页面/内嵌 的滚动条等
1、使用JavaScript的场景&使用模板
1、浏览器页面的滚动条(或者懒加载)
懒加载:根据进度条的下拉,再去加载此刻下拉位置的页面数据
整体页面的滚动条移动写法:
document.documentElement.scrollTop=200 //滑动到指定位置,0代表顶端
document.documentElement.scrollHeight //获取页面的滚动高度
备注:以上的语句需要在console中执行才会生效哦,如下:

2、页面内嵌的滚动条
页面内嵌的滚动条移动需要2步,如下:
1、先去定位内嵌滚动条元素
2、再使用scrollTop进行滚动
实战演练:


2、在Python代码中调用JavaScript
1、方式一:不传参
模板语句如下:
driver.execute_script("...");
2、方式二:传参
模板语句如下:
element = driver.find_element(By.ID,"XX")
driver.execute_script("arguments[0]...",element)
相关文章:
Python —— 验证码的处理执行JavaScript语句
1、验证码的处理 1、概述&绕过验证码的方案 很多的网站都在登录页面加入了识别文字,识别图片,拖动拼图的验证码方式来防止爬虫、恶意注册 等,如果是做自动化,需要绕过验证码才能进入下一步操作,那么有4种方案可以…...
MS12_020 3389远程溢出漏洞
1.search ms12_020 搜索ms12_020 2.use auxiliary/scanner/rdp/ms12_020_check 检查是否存在ms12_020漏洞 show options 查看所需参数 set RHOSTS x.x.x.x 设置目标IP地址 run 执行 检测出来有Ms12_020漏洞 3.use auxiliary/dos/windows/rdp/ms12_020_maxchannelids 选择…...
Pytorch ddp切换forward函数 验证ddp是否生效
DDP及其在pytorch中应用 ddp默认调用forward函数,有些模型无法使用forward函数,可以对模型包装一下。 class modelWraper(nn.Module):def __init__(self, model):super().__init__()self.model modeldef forward(self, *args, **kwargs):return self.…...
C++中按引用向函数传递参数
C中按引用向函数传递参数 在参数传递过程中,如果实参与引用参数不匹配,C将生成临时变量。当前,仅当参数为 const 引用时,C才允许这么做,但以前不 是这样。如果引用参数是 const,则编译器将在下面两种情况…...
【Asp.net】Asp.net core中IIS配置注意事项
1、应用地址池设为无托管代码 一、提示:关于IIS上运行ASP.NET Core 站点的“HTTP 500.19”错误 安装dotnet-hosting-3.1.2-win.exe ASP.NET Core 3.1 Runtime (v3.1.2)下载地址: https://download.visualstudio.microsoft.com/download/pr/dd119832-dc4…...
Redis实现附近商户
GEO数据结构的基本用法 GEO就是Geolocation的简写形式,代表地理坐标。Redis在3.2版本中加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有: GEOADD:添加一个地理空间信息…...
【COMP305 LEC 3 LEC 4】
LEC 3 A basic abstract model for a biological neuron 1. Weights of connections Neuron gets fired if it has received from the presynaptic neurons 突触前神经元 a summary impulse 脉冲, which is above a certain threshold. Signal from a single synapse突触 ma…...
国密https访问
前言 现在的SSL的加密算法实际上主要是国际算法,包括JDK,Go等语言也仅支持国际算法加密(毕竟是国外开源项目),hash。随着国密算法的普及,比如openssl就支持国密了,还要新版本的Linux内核也开始…...
31二叉树-递归遍历二叉树
目录 LeetCode之路——145. 二叉树的后序遍历 分析 LeetCode之路——94. 二叉树的中序遍历 分析 LeetCode之路——145. 二叉树的后序遍历 给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。 示例 1: 输入:root [1,null,2,3] 输出…...
【【萌新的FPGA学习之管脚设定xdc文件】】
萌新的FPGA学习之管脚设定xdc文件 xdc文件可以自己设置 也可以匹配 我们根据正点原子的流水灯管脚设定 主要讲述一下 各个英文设计是什么意思 Name:工程中顶层端口的名称。 Direction:说明管脚是输入还是输出。 Neg Diff Pair:负差分对&…...
tomcat---动静分离
访问静态和动态页面分开 实现动态的静态页面负载均衡 实验一 准备阶段:三台虚拟机 nginx代理服务器 :20.0.0.40 tomcat1 :20.0.0.50 tomcat2:20.0.0.51 配置关闭虚拟机防火墙和安全机制 systemctl stop firewalld setenf…...
Spring MVC(一)【什么是Spring MVC】
重点 Spring:IOC 和 AOP 。 Spring MVC :Spring MVC 的执行流程。 SSM 框架的整合! Spring 和 Mybatis 我们不建议使用太多注解,Spring MVC 建议全部使用注解开发! 1、MVC 回顾 1.1、什么是MVC MVC是模型(Model)…...
.npmrc 使用详解
配置.npmrc之后需要: 清理项目目录中的 node _modules 目录(package-lock.json,umi)。清理 node cache: npm cache clear --force;{ 此步骤必须,主要是大家的电脑经过多年使用后,npm 配置比较混乱,为了避免或者减少配…...
3D视觉硬件技术
目前市面上主流的3D光学视觉方案有三种: 双目立体视觉法(Stereo Vision,在下文称双目法),结构光法(Structured Light,在下文称结构光)以及飞行时间法(Time of Flight, ToF在下文称T…...
【使用OpenCV进行目标分割与计数的代码实例详解】
文章目录 概要实例一:硬币分割计数实例二:玉米粒分割计数 概要 在当今数字图像处理领域,图像分割技术是一项至关重要的任务。图像分割旨在将图像中的不同目标或区域准确地分开,为计算机视觉、图像识别和机器学习等领域提供了坚实…...
npm ERR! exited with error code: 128
1.遇到的问题 报错信息:npm ERR! E:\tools\Gitt\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git npm ERR! npm ERR! fatal: unable to access https://github.com/nhn/raphael.git/: OpenSSL SSL_read: Connection was reset, errno 10054 …...
Spark---数据输出
1. 输出为Python对象 collect算子:将RDD各个分区内的数据,统一收集到Driver中,形成一个List对象 reduce算子:对RDD数据集按照传入的逻辑进行聚合 take算子:取RDD的前N个元素,组合成list返回给你 count…...
虹科干货 | Redis Enterprise 自动分层技术:大数据集高性能解决方案
文章来源:虹科云科技 阅读原文:https://mp.weixin.qq.com/s/5ik-WLHwEmPn42f1FissQw 越来越多的应用程序依赖于庞大的数据集合,而这些应用程序必须快速响应。借助自动分层,Redis Enterprise 7.2 帮助开发人员轻松创建超快的应用程…...
信息系统项目管理师第四版学习笔记——组织通用治理
组织战略 组织战略是组织高质量发展的总体谋略,是组织相关干系方就其发展达成一致认识的重要基础。组织战略是指组织针对其发展进行的全局性、长远性、纲领性目标的策划和选择。 战略目标是组织在一定的战略期内总体发展的总水平和总任务。它决定了组织在该战略期…...
安装zip扩展(PHP)
记录一次 安装zip扩展的最优方案 (备注 网上以及Ai提供的很乱不能很快解决) 首先搜索zip包 yum search zip选择自己合适的php版本 比如我的php是7.4.33的 我就用php74-php-pecl-zip 如果没有的话 先添加软件源 sudo yum install epel-release sudo yu…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
