采集极验4滑块验证码图片数据

在网络安全领域,验证码是一种常见的用于验证用户身份或防止恶意机器人攻击的技术。而极验4滑块验证码作为一种广泛应用的验证码形式,其具有较高的安全性和防御能力。本文将以获取极验4滑块验证码图片数据为主题,介绍相关技术和方法。

一、极验4滑块验证码简介

极验4滑块验证码是一种基于用户滑动操作来验证的验证码形式。用户需要通过滑动滑块至指定位置,以证明自己是真实用户而非机器人。这种验证码形式采用了机器学习和行为分析等先进技术,难以被自动化工具或脚本破解,因而广受网站开发者的青睐。

二、采集极验4滑块验证码图片的必要性

在研究极验4滑块验证码自动化通过的过程中,我们需要获取大量的验证码图片数据,以便进行训练和分析。这些数据对于算法的优化和改进非常重要。因此,我们需要利用爬虫技术来采集这些极验4滑块验证码图片。

三、使用爬虫技术采集极验4滑块验证码图片

1、确定目标网站:选择一个包含极验4滑块验证码的目标网站作为爬取对象。

2、分析网页结构:通过查看目标网页的源代码和开发者工具,了解滑块验证码的位置、样式和相关参数。

这里用火狐浏览器为例,浏览器按下F12,选择【网络】选项卡,清空里面的请求。然后点击刷新验证码按钮,就可以获得新的图片,这样就可以得到获取图片的链接。

 3、分析请求参数

通过浏览器抓包,得到的信息如下,其中bg参数包含的就是大图的链接,通过链接就可以直接下载图片了。

4、编写爬虫代码:使用Python编写爬虫代码,模拟浏览器行为,访问目标网站并获取验证码图片的URL。

这个链接具有一定的时效性,可能十分钟后就会失效吧,所以失效后可以再通过浏览器抓包方式获取最新的链接继续采集。下面的代码链接就已经失效了,请替换为自己最新的链接。

import time
import json
import requests
from io import BytesIO
from PIL import Imagefor i in range(100):url = "https://gcaptcha4.geetest.com/load?callback=geetest_1689421548194&captcha_id=cdb27a1d9a634fd518f2fa445d6f1c1f&client_type=web&lot_number=ec23b49f8bcd45c38dce44d5f116ad3f&pt=1&lang=zho&payload=xSJqOy81RFro17RrPzpVayZp14MU2h0xs_RHbIGG757niUjQE6Ce0diVZJvowhabG0LPg9JW7et3ANw6hHB7IA1y7g3utf3RrKEkasazsNcVDYmbIlNPNhrST81ZJr8XaQOwaOj68ZMIsYFNiO5IoUqAP4vu-i9Vn2CK1JMq4n_JPLRl6hFK5Tl013_x-r9eB27gl7t1HShpy75zQ3xBusi0YGsKj9GF_aEWNrxtXZUrahjeaHtaOZdKo1NilEb4tPAdQXbual7aHpLHSaBIxsvu1PJrIEHNUDdxaxS1c17896OaRu5hKQHGS4170jTjhO4rPFoB4ffmugcTpV3DjWDheCt1UuVfme2f8bl96gAUno_f4Trv3ZZiAy4W3mqSik_gVvDtOMrgJrz2CWad1R3pdGOwI-XaLDrTbK4UIMmoZutjQX077m5IJLTMbSYlJwvstO9la0NcbmPK68dcojaABgIkbGvbCS97GPlubQyV_DYGSVCVGH3TmB2sETmQaDj3bkwWFtJ3YHbkL8RxI8sgid3ho4jQVgErUW0eoNgGOB1tzxnKV8RAbDvoT7YXXnVEGCzdve7ySPFrGqpdvbJ95PL3bmoptX4TgKvvPGJZBRXxXAIaYyC1KgUOFpe5YBWAMhcgkEQqQIC2Akb5cXTU6ETwvUz_m7Bufq0n2xnXTi3-pCtXJ5uxQxRVkwzwRc80sj63DnYvdDfu20V7vkJ-C766-TOlsuMOeFMIqHk%3D&process_token=5b752f9db61a493103c23ece058cc115fab03cb5f0e69d1cbd22c36ec24622bc&payload_protocol=1"header = {"Host": "gcaptcha4.geetest.com","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0","Accept": "*/*","Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",# "Accept-Encoding": "gzip, deflate, br","Connection": "keep-alive","Referer": "https://monica.im/login","Cookie": "gt_captcha_v4_user=4c5398c023e1401695cd2cbd3e52aba2; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2218875ab69c7441-060783d3e4bfe08-4c302978-1327104-18875ab69c94db%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%2C%22%24latest_landing_page%22%3A%22https%3A%2F%2Fwww.geetest.com%2Fshow%22%7D%2C%22%24device_id%22%3A%2218875ab69c7441-060783d3e4bfe08-4c302978-1327104-18875ab69c94db%22%7D; Hm_lvt_25b04a5e7a64668b9b88e2711fb5f0c4=1685601348; _uetvid=ca611c60004611ee8d41855bd2dec21b",}# 请求获取大图链接response = requests.get(url=url, headers=header)# 解析响应,转成字典data = json.loads(response.text[22:-1])# 获取大图链接bg_url = 'https://static.geetest.com/' + data['data']['bg']# 下载大图response = requests.get(url=bg_url)# 保存大图img = Image.open(BytesIO(response.content))img.save('train_img/{}.jpg'.format(int(time.time() * 1000)))time.sleep(2)

5、下载验证码图片:利用爬虫代码发送请求,下载验证码图片并保存到本地。

6、数据清洗和整理:对下载的验证码图片进行清洗和整理,确保数据的准确性和完整性。

四、总结

1、和极验3相比,极验4大图反爬能力变弱了。因为极验3图片链接很快就会失效。

2、和极验3相比,极验4图片的解析难度变小了。因为极验3的图片是打乱的,还需要拼图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/2469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【webrtc】rtc::Thread和std::thread 的用法

全局线程 itsfolf/Discord-Screenshare-Linux#include "rtc_base/thread.h"rtc::Thread* GlobalLoopThread() {static auto result = []

redis 相关

redis相关面试题 redis支持哪几种数据形式? String,hash,set,zset,list redis主要消费什么物理资源? 内存,key-value的形式, redis 具有快速和数据持久化的特征,如果不将数据放在内存中,磁盘 I/O 速度为严…

MySQL常用语句

目录 连接MySQL 数据库操作 表的操作 数据操作 进阶查询 源码等资料获取方法 连接MySQL -- 语法:mysql -u用户名 -p密码 注:--空格 起到注释的作用 mysql -uroot -p123456 数据库操作 -- 显示当前时间、用户名、数据库版本(可以单独…

MATLAB 之 可视化图形用户界面设计

这里写目录标题 一、可视化图形用户界面设计1. 图形用户界面设计窗口1.1 图形用户界面设计模板1.2 图形用户界面设计窗口 2. 可视化图形用户界面设计工具1.1 对象属性检查器2.2 菜单编辑器2.3 工具栏编辑器2.4 对齐对象工具2.5 对象浏览器2.6 Tab 键顺序编辑器 3. 可视化图形用…

hibernate入门,springboot整合hibernate

Mybatis和Hibernate是我们常用的两大ORM框架,这篇文章主要介绍hibernate的使用,如何通过springboot整合hibernate,实现简单的crud功能。 添加依赖 首先,需要创建一个springboot项目,这里就取名为hibernate。项目创建完…

【Visual Studio Code】---自定义键盘快捷键设置

概述 一个好的文章能够帮助开发者完成更便捷、更快速的开发。书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。 一、进入键盘快捷键设置 1、进入键盘快捷键设置方法1 使用快捷键进入键盘快捷键设置先按 Ctrl K再…

12-组队竞赛

题目 牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。 例如: 一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3一个队伍三个…

怎么做活码二维码?动态码在线生成技巧

现在制作二维码用户大多习惯使用活码二维码,其优势在于能够在二维码不变的情况下修改内容,能够生成二维码长期使用,还可以设置有效期、加密等其他功能可以使用。那么怎么生成活码二维码呢?可以使用二维码生成器(免费在…

【自然语言特征工程笔记】

字典特征提取 DictVectorizer 介绍 字典特征提取是机器学习和自然语言处理中常用的一种技术,用于将文本数据转化为可用于机器学习算法的数值特征。DictVectorizer是一个用于将字典对象转化为稀疏特征矩阵的工具。它能够处理带有非数值特征的数据,并将其…

leetcode 445. Add Two Numbers II(两数相加)

用链表代表2个数字,这2个数字相加的和用链表返回。 最高位在链表的head. 思路: 1.链表逆序 数字相加是从低位到高位的,然而链表中的数字是从高位指向低位。 所以涉及到链表的逆序。 逆序之后只需从head到tail把两个链表的数字相加&#x…

克服 ClickHouse 运维难题:ByteHouse 水平扩容功能上线

前言 对于分析型数据库产品,通过增加服务节点实现集群水平扩容,并提升集群性能和容量,是运维的必要手段。 但是对于熟悉 ClickHouse 的工程师而言,听到“扩容”二字一定会头疼不已。开源 ClickHouse 的 MPP 架构导致扩容成本高&…

C++图形开发(16):绘制一个圆环和一根针

文章目录 绘制一个圆环和一根针1.1 绘制1.2 line()函数1.3 circle()函数1.4 setlinestyle()函数1.5 setlinecolor()函数 接下来,我会继续制作一些小游戏,但因为整个难度的上升(毕竟我也是初学者),可能文章不会再像之前…

Maven工程中排除依赖打包的两种方式

在Maven工程中,我们常需要依赖各种第三方库完成项目开发,但在最终交付时,往往不希望将这些依赖本身打包到产品中,以减小发布包体积。此时,可以通过以下两种方式实现: 使用provided 这适用于那些编译时需要,但运行时会由服务器或运行环境提供的库,典型的如Servlet API、JDBC驱…

spring boot 引入hive

在Spring Boot中使用Hive&#xff0c;需要引入以下依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-hadoop</artifactId> </dependency>然后&#xff0c;在application.…

Android 图片加载库改造

一、现状: 1、bug众多 加载前没有判断 context 是否为空&activity 是否已经销毁,导致崩溃; trying to use a recycled bitmap android.graphics.Bitmap 导致崩溃; 使用applicationContext 作为上下文,导致内存泄露,卡顿; ActivityUtilKt.context() && Activ…

http连接处理(下)(四)

1.结合代码分析请求报文响应 下面我们将介绍服务器如何响应请求报文&#xff0c;并将该报文发送给浏览器端。首先介绍一些基础API&#xff0c;然后结合流程图和代码对服务器响应请求报文进行详解。 基础API部分&#xff0c;介绍stat、mmap、iovec、writev。 流程图部分&…

如何在pycharm上安装yfinance库

在 PyCharm 上安装 yfinance 库&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开 PyCharm&#xff0c;创建一个新的 Python 项目或打开已有项目。在 PyCharm 的顶部菜单栏中&#xff0c;选择 “File”&#xff08;文件&#xff09;> “Settings”&#xff08;设置&a…

【Ubuntu 20.04LTS系统】安装CUDA11.8、cuDNN,可进行CUDA版本切换

Ubuntu 20.04LTS系统安装CUDA11.8、cuDNN&#xff0c;可进行CUDA版本切换 1. 更改为清华源并更新软件列表和依赖项2. 安装CUDA3. 安装cuDNN4. CUDA版本切换 1. 更改为清华源并更新软件列表和依赖项 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ # 默认注释了源码镜像以提…

二维码识别 OCR 原理及如何应用于物流和仓储管理中

摘要 在传统的物流和仓储管理中&#xff0c;人工操作容易出现错误和低效率。然而&#xff0c;随着二维码技术的普及和二维码识别OCR接口的应用&#xff0c;物流和仓储管理实现了更高水平的自动化和智能化。通过扫描和解码二维码&#xff0c;物流和仓储管理系统可以实现货物跟踪…

Flutter有状态组件StatefulWidget

当继承StatelessWidget组件时&#xff0c;在组件中更新数据时页面不会立即刷新。 如果继承StatefulWidget时&#xff0c;只要在setState方法中更新数据后页面会实时更新数据。 Flutter有状态组件StatefulWidget 完整代码&#xff1a; import package:flutter/material.dart;v…