# Python爬虫入门教程 59-100 python爬虫高级技术之验证码篇5-极验证识别技术之二

@[toc]

## 图片比对

### 计算缺口坐标

    def get_distance(self,cut_image,full_image):

# print(cut_image.size)
threshold = 50
for i in range(0,cut_image.size[0]):
for j in range(0,cut_image.size[1]):
pixel1 = cut_image.getpixel((i, j))
pixel2 = full_image.getpixel((i, j))
res_R = abs(pixel1[0] - pixel2[0])  # 计算RGB差
res_G = abs(pixel1[1] - pixel2[1])  # 计算RGB差
res_B = abs(pixel1[2] - pixel2[2])  # 计算RGB差

if res_R > threshold and res_G > threshold and res_B > threshold:
return i  # 需要移动的距离


https://blog.csdn.net/ieternite/article/details/51483491

https://www.cnblogs.com/xiao-apple36/p/8878960.html

### 移动滑块

    # 移动滑块
def start_move(self, distance):
element = self.driver.find_element_by_xpath('//div[@class="gt_slider_knob gt_show"]')

# 使用滑块的一半进行偏移设置
distance -= element.size.get('width') / 2
distance += 15

# 按下鼠标左键
ActionChains(self.driver).click_and_hold(element).perform()
time.sleep(0.5)
while distance > 0:
if distance > 20:
# 如果距离大于20，就让他移动快一点
span = random.randint(5, 8)
else:
# 快到缺口了，就移动慢一点
span = random.randint(2, 3)
ActionChains(self.driver).move_by_offset(span, 0).perform()
distance -= span
time.sleep(random.randint(10, 50) / 100)

ActionChains(self.driver).move_by_offset(distance, 1).perform()
ActionChains(self.driver).release(on_element=element).perform()


### 验证失败

       self.start_move(dis)

# 如果出现错误
try:
WebDriverWait(self.driver, 5).until(
EC.element_to_be_clickable((By.XPATH, '//div[@class="gt_ajax_tip gt_error"]')))
print("验证失败")
return
except TimeoutException as e:
pass

# 判断是否验证成功
try:
WebDriverWait(self.driver, 10).until(
EC.element_to_be_clickable((By.XPATH, '//div[@class="gt_ajax_tip gt_success"]')))
except TimeoutException:
print("重新验证....")
time.sleep(5)
# 失败后递归执行拖动
self.analog_drag()
else:
print("验证成功")


## 写在后面

element = self.driver.find_element_by_xpath('//div[@class="gt_slider_knob gt_show"]')


driver 需要及时的关闭，否则会在你的任务管理器中出现大量的chromedriver.exe 进程

|
4天前
|

Python爬虫实战：抓取网站数据并生成报表

|
3天前
|

|
3天前
|

Python 爬虫实战
Python爬虫可以用于爬取淘宝商品数据，并对这些数据进行数据分析。下面是一个简单的示例，展示如何使用Python爬取淘宝商品数据并进行数据分析。
24 3
|
2天前
|

Python技术应用案例——基于机器学习的信用评分模型
【2月更文挑战第11天】机器学习作为当下最热门的技术之一，已经在各个领域获得了广泛的应用。本文将介绍一个基于Python机器学习算法的信用评分模型，通过对数据集的处理和模型训练，实现对客户信用评级的自动化判定，提高了银行的工作效率和准确性。
9 4
|
2天前
|

Python中的并发编程技术探究

15 8
|
4天前
|

Python 爬虫实战之爬拼多多商品并做数据分析

34 2
|
5天前
|

Python爬虫之Splash负载均衡配置#7
Splash负载均衡配置【2月更文挑战第28天】
14 0
|
7天前
|

Python 爬虫实战之爬拼多多商品并做数据分析
Python爬虫可以用来抓取拼多多商品数据，并对这些数据进行数据分析。以下是一个简单的示例，演示如何使用Python爬取拼多多商品数据并进行数据分析。
25 2
|
10天前
|

Python爬虫实战：打造高效数据采集工具

18 2
|
11天前
|
JSON JavaScript 文件存储
Python爬虫之文件存储#5
TXT文件存储、JSON文件存储、CSV文件存储【2月更文挑战第16天】
30 2