获取验证码截图代码:

获取验证码代码:
#!/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. Android Media Framework(一)OpenMAX框架简介

    学习开源代码最快的方式是先阅读它的文档,再查看它的头文件,最后研读代码实现并进行编译调试.Android早期引入OpenMAX IL作为使用音视频编解码器的标准接口,了解Android Media框架 ...

  2. redis 基础管理

    配置文件 优化redis配置文件定制 cat /nosql/redis/6379/redis.conf daemonize yes port 6379 logfile /nosql/redis/637 ...

  3. idea 使用 mvn clean package 报错 Could not create local repository at

    使用 mac 版本的 idea 打包使用打包命令 mvn clean package 总是报错: [ERROR] Could not create local repository at /Repos ...

  4. HDFS 常用操作命令

    HDFS 文件操作命令 注,其实常用命令不用网上搜,和linux下的命令很类似,触类旁通,直接在linux 上 hadoop fs 看一下就行了,不需要刻意去记 我把 linux 上的 help 列举 ...

  5. Externalizable接口实现序列化与反序列化

    Externalizable接口实现序列化与反序列化 package com.example.core.mydemo.java; import com.example.core.mydemo.json ...

  6. 为什么https要使用证书

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

  7. 探索Semantic Kernel内置插件:深入了解ConversationSummaryPlugin的应用

    前言 经过前几章的学习我们已经熟悉了Semantic Kernel 插件的概念,以及基于Prompts构造的Semantic Plugins和基于本地方法构建的Native Plugins.本章我们来 ...

  8. 《Node.js+Vue.js+MangoDB全栈开发实战》已出版

    <Node.js+Vue.js+MangoDB全栈开发实战> 图书购买地址: 京东:<Node.js+Vue.js+MangoDB全栈开发实战> 当当:<Node.js+ ...

  9. 我所关注的几个spring设计模式

    Spring框架中实现了许多的设计模式,而且都是非常优先的实现,这些值得我们学好好习. 不过话说回来,我觉得自己只要关注几个即可: 单例 工厂 代理 适配器 观察者 委派 在各种设计模式中,适配器和装 ...

  10. python利用公私钥加解密

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