获取验证码截图代码:

获取验证码代码:
#!/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获取验证码截图的更多相关文章

  1. selenium+Python3.5获取验证码

    其中PIL为Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,但API却非常简单易用. PIL第三方库安装 pip install PI ...

  2. selenium获取图片验证码

    # encoding:utf-8 from PIL import Image from selenium import webdriver url = '网站地址' driver = webdrive ...

  3. Selenium获取动态图片验证码

    Selenium获取动态图片验证码 关于图片验证码的文章,我想大家都有一定的了解了. 在我们做UI自动化的时候,经常会遇到图片验证码的问题. 当开发不给咱们提供万能验证码,或者测试第三方网站比如知乎的 ...

  4. python+pymssql+selenium 获取短信验证码登录(实战练习)

    登录页面输入手机号, 获取短信验证码(验证码有10分钟有效期) 1 连接sql server数据库,获取10分钟之内的有效短信验证码 2 页面输入手机号,并获取验证码.若存在有效验证码则输入验证码,若 ...

  5. selenium验证码处理-获取验证码图片二进流数据转成原图保存

    1.因为视频的作者给的代码不完整,只有核心部分的代码. 2.视频作者示例使用的第三方破解12306的脚本网页(失效了) 所以本人无法复现,此次截取部分代码作为理解核心意思(思想方法最重要) 1.面向对 ...

  6. selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)

    网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截 ...

  7. 用python+selenium获取XX省交通违章数据

    前言: 目前在研究易信公众号,想给公众号增加一个获取个人交通违章的查询菜单,通过点击返回查询数据.以下是实施过程. 一.首先,用火狐浏览器打开XX省交管网,分析页面信息: 可以看到共有4种查询种类,我 ...

  8. python3爬虫-通过selenium获取TB商品

    from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from seleni ...

  9. Atitit.获取验证码图片通过web

    Atitit.获取验证码图片通过web 1. WebRequest进行较为底层的访问(不推荐) 1 2. WebBrowser截图 1 3. 剪贴板复制法Clipboard(推荐) 1 4. C# 取 ...

  10. selenium 代理 Cookies 截图 等待 调用JS

    改变用户代理 读取Cookies 调用Java Script Webdriver截图 页面等待 1. 改变用户代理 import org.junit.AfterClass; import org.ju ...

随机推荐

  1. 利用 Helm 在各类 Kubernetes 中安装 Rainbond

    利用 Helm 安装 Rainbond 好雨科技技术团队一直致力于让用户更方便的安装 Rainbond 这款产品. 不久前,我们刚刚推出了在一个容器中部署 Rainbond 的快速安装方式,这种方式覆 ...

  2. 云原生时代的"应用级"多云管理

    作者:张齐 当前云计算有多种形态公有云.私有云.边缘云.虚拟机等,如何高效管理多云是当前面临的问题,在云原生时代,又该如何利用云原生技术实现多云管理?本文将讲解通过 Rainbond实现"应 ...

  3. kettle从入门到精通 第六十四课 ETL之kettle kettle中执行SQL脚本步骤,使用需当心

    1.群里有不定时会有同学反馈执行SQL脚本步骤使用有问题,那么咱们今天一起来学习下该步骤.trans中的执行SQL脚本有两方面功能,使用时需小心,不然很容易踩坑. 官方定义: 翻译: 您可以使用此步骤 ...

  4. #define 用法解法

    宏的优点是能整理代码 缺点是宏替换来的代码需要人工解除宏后才能暴漏源代码 改底层时候是需要解一解的 它可以做到main函数中只有一个宏字母 这个宏定义时候,定义成了几个函数的源代码 所以main里面就 ...

  5. java springboot 指定运行端口

    java springboot 指定运行端口 方法1: 修改源代码里的"\src\main\resources\application.properties" 文件,增加或修改 s ...

  6. koishi机器docker搭建

    硬件要求: 可用内存:1G以上 存储空间:1G以上 cpu:不限制 配置: 在docker的存储空间目录建立koishi文件夹 下载docker镜像 koishijs/koishi 建立容器,具体设置 ...

  7. 构建SaaS能力,加速数字化转型!猪齿鱼将在华为云快成长直播间开讲!

    时代的浪潮驱动着企业数字化转型.伴随着新基建.云计算成为国家战略的重要环节之一,"千行百业"开始专注于数字化转型,企业纷纷使用软件提升研发.销售.市场.消费者等不同场景下的效率,S ...

  8. Java api zookeeper

    package com.redis.demo.zookeeper; import java.io.Serializable; public class User implements Serializ ...

  9. SoftReference 到底在什么时候被回收 ? 如何量化内存不足 ?

    本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC. 提示: 为了方便大家索引,特将在上篇文章 <以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的> 中讨 ...

  10. MySQL Docker搭建挂载并启用远程连接

    1.拉取镜像 后面可以指定版本号,这里使用8.0 docker pull docker.io/mysql:8.0 2.查看mysql镜像 docker images 3.启动docker并挂载 doc ...