优草派 > 问答 > Python

Python3爬虫关于识别触点点选验证码的实例讲解

作者:sujunhot     

随着互联网的发展,爬虫的应用越来越广泛,而验证码作为防止机器人程序爬取数据的一种手段也越来越普遍。触点点选验证码是其中一种常用的验证码类型,本文将从多个角度分析如何使用Python3爬虫识别触点点选验证码。

一、什么是触点点选验证码

触点点选验证码是一种人机交互式验证码,需要用户通过点击图片中指定的几个点来完成验证。这种验证码相较于传统的文字或数字验证码更加安全可靠,因为机器人程序难以模拟人类的行为来完成验证。

二、触点点选验证码的实现原理

触点点选验证码的实现原理是基于人类的视觉系统和行为模式的,它需要用户点击图片中指定的几个点。在实现过程中,程序会先随机生成一张图片,然后在图片中指定几个需要被点击的点,最后将用户的点击位置与指定的点进行比对,如果一致则完成验证,否则需要重新验证。

三、触点点选验证码的识别方法

触点点选验证码的识别方法有很多种,比如OCR识别、模拟点击、机器学习等。在本文中,我们将使用模拟点击的方法来识别触点点选验证码。

四、使用Python3爬虫识别触点点选验证码的实现过程

在使用Python3爬虫识别触点点选验证码时,需要使用selenium和chromedriver来模拟用户的点击行为。具体实现过程如下:

1. 安装selenium和chromedriver

```python

!pip install selenium

!apt-get update

!apt install chromium-chromedriver

```

2. 导入selenium库

```python

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.action_chains import ActionChains

```

3. 启动chromedriver

```python

options = webdriver.ChromeOptions()

options.add_argument('--headless')

options.add_argument('--no-sandbox')

options.add_argument('--disable-dev-shm-usage')

options.add_argument('--disable-gpu')

options.add_argument('--disable-browser-side-navigation')

options.add_argument('--disable-infobars')

options.add_argument('--disable-extensions')

options.add_argument('--disable-web-security')

options.add_argument('--allow-running-insecure-content')

browser = webdriver.Chrome('chromedriver', options=options)

```

4. 进入目标网站并获取验证码图片

```python

browser.get("http://example.com")

captcha = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "captcha_image")))

```

5. 获取验证码图片的位置信息

```python

location = captcha.location

size = captcha.size

```

6. 计算出需要点击的点的位置信息

```python

x1 = location['x'] + size['width'] / 4

y1 = location['y'] + size['height'] / 4

x2 = location['x'] + size['width'] / 4 * 3

y2 = location['y'] + size['height'] / 4 * 3

```

7. 模拟用户的点击行为

```python

actions = ActionChains(browser)

actions.move_to_element_with_offset(captcha, x1, y1).click().perform()

actions.move_to_element_with_offset(captcha, x2, y2).click().perform()

```

8. 提交验证信息

```python

submit_button = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "submit_button")))

submit_button.click()

```

五、总结

本文从多个角度分析了如何使用Python3爬虫识别触点点选验证码,通过模拟用户的点击行为来完成验证。在实际使用中,还需要注意一些细节问题,比如验证码的位置信息、点击的位置信息、模拟点击的时间等。识别验证码的过程是一个不断尝试的过程,需要不断改进和优化,才能达到更好的效果。

5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
相关问题
csv文件python
如何利用python写爬虫
数据库如何去重复数据
python如何读取csv
查看更多

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024