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 ...
随机推荐
- Django用户认证组件 (auth模块)
1.导入 auth 模块 # 认证模块 from django.contrib import auth # 对应数据库用户表,可以继承扩展 from django.contrib.auth.model ...
- centos7下启动Django项目报错(sqlite错误)
报错内容如下: [root@localhost project]# python3 manage.py runserver Watching for file changes with StatRel ...
- C语言常用数学函数
目录 C语言常用数学函数(头文件#include "math.h") abs()函数 labs()函数 fabs()函数 floor()函数 floorf() floorl() c ...
- graylog 大于等于 查询
graylog 大于等于 查询 :>=1000 不要有空格 如下: pay_channel:PSBC AND hs:>=4
- SDL3 入门(1):Hello, SDL3!
在本系列中我们使用 Windows Terminal + Powershell 组合作为我们在 Windows 系统下的终端工具,Windows 11 自带该环境.你也可以使用任意自己喜欢的终端环境代 ...
- mongodb安装及启动配置文件,允许远程访问连接
windows安装https://www.runoob.com/mongodb/mongodb-window-install.html https://www.runoob.com/mongodb/m ...
- 5分钟理透LangChain的Chain
LangChain几乎是LLM应用开发的第一选择,它的野心也比较大,它致力于将自己打造成LLM应用开发的最大社区.而LangChain最核心的部分非 Chain 莫属. 那Chain到底是个啥,概念比 ...
- FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
RTMP Streamer是一个安卓手机端的开源RTMP直播推流框架,可用于RTMP直播和RTSP直播,其升级版还支持SRT直播(腾讯视频云就采用SRT协议).RTMP Streamer支持的视频编 ...
- XIP技术与Flash
XIP技术与Flash 参考: 串行NAND Flash的两大特性导致其在i.MXRT FLASH控制器下无法XiP norflash芯片内执行(XIP) NOR Flash 和 NAND Flash ...
- socket 端口复用 SO_REUSEPORT 与 SO_REUSEADDR
背景 在学习 SO_REUSEADDR 地址复用的时候,看到有人提到了 SO_REUSEPORT .于是也了解了一下. SO_REUSEPORT 概述 SO_REUSEPOR这个socket选项可以让 ...