获取验证码截图代码:

获取验证码代码:
#!/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. 一款WPF的精简版MVVM框架——stylet框架的初体验(包括MVVM绑定、依赖注入等操作)

    今天偶然知道一款叫做stylet的MVVM框架,挺小巧的,特别是它的命令触发方式,简单粗暴,让人感觉很巴适,现在我做一个简单的demo来顺便来分享给大家. 本地创建一个WPF项目,此处我使用.NET ...

  2. Linux间进程通信--消息队列

    本系列文章主要是学习记录Linux下进程间通信的方式. 常用的进程间通信方式:管道.FIFO.消息队列.信号量以及共享存储. 参考文档:<UNIX环境高级编程(第三版)> 参考视频:Lin ...

  3. css3 浏览器前缀 线型渐变 过渡属性

    css3:没有形成正式版 每个浏览器商,为了能对css3属性形成一个更好的支持,浏览器形成自己一套语法规范,一些css属性,如果想在浏览器上形成支持,有时候需要添加浏览器前缀 谷歌前缀:-webkit ...

  4. CF1838A-Blackboard-List

    题意简述 在黑板上有两个数字,进行如下操作 \(n-2\) 次: 每次在黑板上选择任意两个数,将两个数的差的绝对值写在黑板上. 这样你会得到一个长度为 \(n (3 \le n \le 100)\) ...

  5. [SHOI2011]双倍回文 题解

    [SHOI2011]双倍回文 题解 看了一些写回文自动机的大佬的代码,我深感敬畏,于是我转身向Manacher走去 现在荣登最优解第一页-- 说实话,这个方法的复杂度是很玄学的,但是加了一些优化之后, ...

  6. INFINI Labs 产品更新 | Easysearch 1.7.1发布

    INFINI Labs 产品又更新啦~,包括 Console,Gateway,Agent 1.23.0 和 Easysearch 1.7.1.此次版本重点修复历史遗留 Bug .网友们提的一些需求等. ...

  7. sql的删除语句

    好久没用过sql的删除语句了,今天写删除语句的时候报错了,应该是:   DELETE FROM 表名称 WHERE 列名称 = 值 我写成了: DELETE FROM 表名称 别名 WHERE 别名. ...

  8. AWS Ubuntu22.04安装Mysql及配置远程连接、SCP上传文件

    一.升级apt资源包 sudo apt update 二.安装MySQL sudo apt install mysql-server 三.启动MySQL服务 sudo service mysql st ...

  9. 为什么https要使用证书

    为什么https要使用证书 什么是httpshttps不是一种新的协议,只是http的通信接口部分使用了ssl和tsl协议替代,加入了加密.证书.完整性保护的功能. 加密:共享密钥加密加密和解密公用一 ...

  10. python利用公私钥加解密

    小贴士 这里不再赘述公私钥的生成过程.可以利用OpenSSL进行生成. 加密代码 #!/usr/bin/python #加密 #conda install pycrypto #提前安装模块 impor ...