selenium获取验证码截图
获取验证码截图代码:
获取验证码代码:
#!/user/bin/env python3
# -*- coding: utf-8 -*-
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from webdriver_helper import get_webdriver
import time
from PIL import Image # pip install PIL # cmd命令下载
from os import path
import os
VerificationCode = '' # 全局变量 用于获取写入验证码
# 以下为selenium对浏览器的操作
option = webdriver.ChromeOptions()
#实现无可视化界面的操作
option.add_argument( '--headless' )
option.add_argument( '--disable-gpu' )
browser = get_webdriver()
browser.maximize_window()
browser.implicitly_wait( 10 )
browser.get( "https://starlink-pre.bytenew.com/login" ) #你需要访问的网站
# =====================对验证码进行定位,并保存验证码图片=====================
# 建的目录
try :
path_mkdir = "D:/VerificationCode/" # 建你自己的目录
# 判断是否已经存在该目录
if not os.path.exists(path_mkdir):
# 目录不存在,进行创建操作
os.mkdir(path_mkdir)
print ( "目录新建成功:" + path_mkdir)
else :
print ( "目录已存在!!!" )
except BaseException as msg:
print ( "新建目录失败:" + msg)
# (1)登录页面截图
browser.save_screenshot( "D:/VerificationCode/code.png" ) #可以修改保存地址
time.sleep( 2 )
# (2)获取图片验证码坐标
code_ele = browser.find_element(By.XPATH, "//*[@id='app']/div/div/form/div[3]/div/div[2]/img" )
print ( "验证码的坐标为:" , code_ele.location) #控制台查看{'x': 1086, 'y': 368}
print ( "验证码的大小为:" , code_ele.size) # 图片大小{'height': 40, 'width': 110}
# (3)图片4个点的坐标位置
left = code_ele.location[ 'x' ] #x点的坐标
top = code_ele.location[ 'y' ] #y点的坐标
right = code_ele.size[ 'width' ] + left #上面右边点的坐标
down = code_ele.size[ 'height' ] + top #下面右边点的坐标
image = Image. open ( 'D:/VerificationCode/code.png' ) # 截取你整个的登录页面
# (4)将图片验证码截取
code_image = image.crop((left * 1.5 , top * 1.5 , right * 1.5 , down * 1.5 )) #乘以1.5是因为电脑缩放是150%
code_image.save( 'D:/VerificationCode/code_new.png' ) #截取的验证码图片保存为新的文件

注意:这里要注意电脑屏幕的缩放与布局的设置
查看电脑缩放与布局方法:


selenium获取验证码截图的更多相关文章
- selenium+Python3.5获取验证码
其中PIL为Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. PIL第三方库安装 pip install PI ...
- selenium获取图片验证码
# encoding:utf-8 from PIL import Image from selenium import webdriver url = '网站地址' driver = webdrive ...
- Selenium获取动态图片验证码
Selenium获取动态图片验证码 关于图片验证码的文章,我想大家都有一定的了解了. 在我们做UI自动化的时候,经常会遇到图片验证码的问题. 当开发不给咱们提供万能验证码,或者测试第三方网站比如知乎的 ...
- python+pymssql+selenium 获取短信验证码登录(实战练习)
登录页面输入手机号, 获取短信验证码(验证码有10分钟有效期) 1 连接sql server数据库,获取10分钟之内的有效短信验证码 2 页面输入手机号,并获取验证码.若存在有效验证码则输入验证码,若 ...
- selenium验证码处理-获取验证码图片二进流数据转成原图保存
1.因为视频的作者给的代码不完整,只有核心部分的代码. 2.视频作者示例使用的第三方破解12306的脚本网页(失效了) 所以本人无法复现,此次截取部分代码作为理解核心意思(思想方法最重要) 1.面向对 ...
- selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)
网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截 ...
- 用python+selenium获取XX省交通违章数据
前言: 目前在研究易信公众号,想给公众号增加一个获取个人交通违章的查询菜单,通过点击返回查询数据.以下是实施过程. 一.首先,用火狐浏览器打开XX省交管网,分析页面信息: 可以看到共有4种查询种类,我 ...
- python3爬虫-通过selenium获取TB商品
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...
- Atitit.获取验证码图片通过web
Atitit.获取验证码图片通过web 1. WebRequest进行较为底层的访问(不推荐) 1 2. WebBrowser截图 1 3. 剪贴板复制法Clipboard(推荐) 1 4. C# 取 ...
- selenium 代理 Cookies 截图 等待 调用JS
改变用户代理 读取Cookies 调用Java Script Webdriver截图 页面等待 1. 改变用户代理 import org.junit.AfterClass; import org.ju ...
随机推荐
- 利用 Helm 在各类 Kubernetes 中安装 Rainbond
利用 Helm 安装 Rainbond 好雨科技技术团队一直致力于让用户更方便的安装 Rainbond 这款产品. 不久前,我们刚刚推出了在一个容器中部署 Rainbond 的快速安装方式,这种方式覆 ...
- 云原生时代的"应用级"多云管理
作者:张齐 当前云计算有多种形态公有云.私有云.边缘云.虚拟机等,如何高效管理多云是当前面临的问题,在云原生时代,又该如何利用云原生技术实现多云管理?本文将讲解通过 Rainbond实现"应 ...
- kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心
1.群里有不定时会有同学反馈执行SQL脚本步骤使用有问题,那么咱们今天一起来学习下该步骤.trans中的执行SQL脚本有两方面功能,使用时需小心,不然很容易踩坑. 官方定义: 翻译: 您可以使用此步骤 ...
- #define 用法解法
宏的优点是能整理代码 缺点是宏替换来的代码需要人工解除宏后才能暴漏源代码 改底层时候是需要解一解的 它可以做到main函数中只有一个宏字母 这个宏定义时候,定义成了几个函数的源代码 所以main里面就 ...
- java springboot 指定运行端口
java springboot 指定运行端口 方法1: 修改源代码里的"\src\main\resources\application.properties" 文件,增加或修改 s ...
- koishi机器docker搭建
硬件要求: 可用内存:1G以上 存储空间:1G以上 cpu:不限制 配置: 在docker的存储空间目录建立koishi文件夹 下载docker镜像 koishijs/koishi 建立容器,具体设置 ...
- 构建SaaS能力,加速数字化转型!猪齿鱼将在华为云快成长直播间开讲!
时代的浪潮驱动着企业数字化转型.伴随着新基建.云计算成为国家战略的重要环节之一,"千行百业"开始专注于数字化转型,企业纷纷使用软件提升研发.销售.市场.消费者等不同场景下的效率,S ...
- Java api zookeeper
package com.redis.demo.zookeeper; import java.io.Serializable; public class User implements Serializ ...
- SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?
本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC. 提示: 为了方便大家索引,特将在上篇文章 <以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的> 中讨 ...
- MySQL Docker搭建挂载并启用远程连接
1.拉取镜像 后面可以指定版本号,这里使用8.0 docker pull docker.io/mysql:8.0 2.查看mysql镜像 docker images 3.启动docker并挂载 doc ...