在网络安全领域,验证码是一种常见的用于验证用户身份或防止恶意机器人攻击的技术。而极验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 Image
for 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的图片是打乱的,还需要拼图。