首页 > 其他分享 >爬虫—图形验证码获取

爬虫—图形验证码获取

时间:2023-07-11 21:56:00浏览次数:39  
标签:截图 code img 爬虫 验证码 bro 图形 div

获取验证码图片步骤

1. 使用selenium操作谷歌浏览器,打开目标网站
2. 对目标网站进行截图,并将图片保存到本地
3. 获取验证码元素节点在屏幕上的位置,即横纵坐标
4. 使用Image库读取保存的截图
5. 使用pillow模块抠出大图中的验证码 只截取元素节点位置对应部分

导入所需库和打开目标网站

from selenium import webdriver
from selenium.webdriver.common.by import By
from PIL import Image
bro = webdriver.Chrome(executable_path='./chromedriver.exe')  # 打开浏览器
bro.get('https://www.chaojiying.com/apiuser/login/')  # 打开目标网站
bro.implicitly_wait(10)  # 隐士等待
bro.maximize_window()  # 将浏览器全屏

image

网页截图保存

bro.save_screenshot('screenshot.png')  # 网页截图,保存

获取验证码元素位置

# 根据css选择器找验证码元素
code = bro.find_element(By.CSS_SELECTOR,'body > div.wrapper_danye > div > div.content_login > div.login_form > form > div > img')
# 左上角的位置
left = code.location['x']  # 1110
top = code.location['y']  # 291
# 右下角的位置
right = code.size['width'] + left  # 1290
bottom = code.size['height'] + top  # 341

读取截图、截取验证码图片和保存验证码图片

img = Image.open('screenshot.png')  # 读取全屏截图
img = img.crop((left, top, right, bottom))  # 截取验证码图片
img.save('code.png')  # 保存图片

代码整合

from selenium import webdriver
from selenium.webdriver.common.by import By
from PIL import Image
bro = webdriver.Chrome(executable_path='./chromedriver.exe')  # 打开浏览器
bro.get('https://www.chaojiying.com/apiuser/login/')  # 打开目标网站
bro.implicitly_wait(10)  # 隐士等待
bro.maximize_window()  # 将浏览器全屏

bro.save_screenshot('screenshot.png')  # 网页截图,保存

# 根据css选择器找验证码元素
code = bro.find_element(By.CSS_SELECTOR,'body > div.wrapper_danye > div > div.content_login > div.login_form > form > div > img')
# 左上角的位置
left = code.location['x']  # 1110
top = code.location['y']  # 291
# 右下角的位置
right = code.size['width'] + left  # 1290
bottom = code.size['height'] + top  # 341

img = Image.open('screenshot.png')  # 读取全屏截图
img = img.crop((left, top, right, bottom))  # 截取验证码图片
img.save('code.png')  # 保存图片

标签:截图,code,img,爬虫,验证码,bro,图形,div
From: https://www.cnblogs.com/XxMa/p/17546035.html

相关文章

  • AvaloniaUI 和 WPF 图形性能的简单测试.
     本文发布于:https://www.cnblogs.com/8u7tgyjire7890/p/17545599.html 原始代码来自于 Avalonia 示例程序https://github.com/AvaloniaUI/Avalonia/blob/master/samples/ControlCatalog/Pages/CustomDrawing.xaml.cs我将其修改为一个单独的Avalonia应用程序,同时将其翻......
  • 通过百度云获得图片验证码
    #!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2022/05/1610:21#@Author:Hero#@File:VerCodeFromBaidu.py#@Sofeware:PyCharm'''通过百度云获得图片验证码'''importosfromaipimportAipOcrclassgetwords():def__ini......
  • 了解网络爬虫
    理解网络爬虫1.1网络爬虫的定义当今最大的网络是互联网,最大的爬虫就是各类搜索引擎,包括谷歌丶百度等。网络爬虫就是按照一定规则去爬去人类所需要的信息的程序,主要通过对URL的请求来实现。一般来说,从搜索引擎这类爬虫搜索到的信息是非常宽泛的,而且夹杂着各种广告,信息是不纯粹的,......
  • 爬虫学习02 requests高级用法
    1requests高级用法1.0自动携带cookie的session对象#session对象----》已经模拟登录上了一些网站---》单独把cookie取出来-res.cookies是cookiejar对象,里面有get_dict()方法转换成字典-转成字典res.cookies.get_dict()#使用session发送请求,cookie自动携带sess......
  • 爬虫学习01
    1扫码登录功能#前端1前端进入扫码登录页面---》向后端发送请求----》后端生成二维码图片---》显示在前端,暂存key2掏出手机,打开对应的app-----》扫描二维码----》app端提示是否登录---》当你点登录---》app能解析出这个地址----》取出你当前app登录的token----》向这个......
  • rabbitMQ二(rabbitMQ图形化界面)
    RabbitMQManagement:IP+15672(可视化界面端口号加上前缀1:5672->15672) username和password默认都是guest rabbitMQ架构图 ......
  • 图形化编程教学视频(以scratch为编程语言)
    新版少儿编程scratch3.0从入门到精通系列教程p1:课前准备p2:电脑里的海洋馆p3:钢琴少年p4:索罗变身p5:航海王路飞p6:蟠桃盛宴p7:消灭蚊子p8:模拟家用电器p9:欢乐体育课p10:我要去火星p11:五官拼拼乐p12:影子分身术......
  • 滑动验证码-移动滑块
    滑动验证码-移动滑块思路:获取滑块建立动作根据滑动的速度滑动fromselenium.webdriver.chrome.serviceimportServicefromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECfromseleniumimport......
  • 滑动验证码-编辑移动轨迹
    滑动验证码-编辑移动轨迹思路:建立每次移动的距离,使用时,移动获取距离拖动滑块儿即可。提示滑动的距离不能随意设置,需要复合人类行为。推荐参考,高中物理了解过的知识:均变速直线运动的速度与时间关系的公式:V=V0+at均变速直线运动的位移与时间关系的公式:x=v0t+½at²'''1、......
  • 滑动验证码-获取滑动长度
    滑动验证码-获取滑动长度思路:为了更快精准的找出滑动的距离,因此可以给图片做适当的处理灰度化。所谓灰度,就是图像没有色彩。举个例子,原本的彩色图片是有RGB三种颜色组成的(也就是每个像素点由三个值),现在给图像灰度化,每个像素点只有一个值(0-255)表示颜色的深度为了方......