selenium+ocr 破解验证码

本文介绍了如何结合selenium和OCR技术破解网站验证码。首先讲解了selenium获取验证码图片的两种方法,包括直接获取图片链接和页面截图。接着详细阐述了OCR识别过程,对比了pytesseract、PaddleOCR和ddddocr库的安装与使用,最终选择ddddocr成功解决验证码识别问题。此外,还提及了在使用过程中遇到的导入库问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近想用python做一个爬虫,但目标网站需要输入信息以及验证码才能进行信息查询,然后才能爬取相应信息,于是就想到了使用selenium进行信息输入,先爬取验证码图片,然后利用OCR技术来识别验证码,接着爬取目标信息,思路很清晰,但做起来就出现一堆问题,于是想在这里记录一下

一、selenium获取验证码图片

目标网站页面大概如下:
在这里插入图片描述

1、信息输入

(1)selenium传入信息比较容易,定位目标元素后使用send_keys()方法即可:driver.find_element_by_xpath('//*[@id="haha"]').send_keys('nihao')

(2)当需要重复进行输入时,我们需要先把输入框的内容清空,这需要使用.clear()方法:driver.find_element_by_xpath('//*[@id="haha"]').clear()

2、获取验证码图片

根据图片链接下载图片-----走不通
(1)对于网页上的图片,其一般是把图片链接藏在网页标签中的属性内(常见为src),我们可以定位到标签,然后使用get_attribute()方法获取其值也就是图片链接

driver.find_element_by_xpath('//*[@id="J_Reviews"]/div/div[6]/table/tbody/tr[1]/ul/li[1]').get_attribute("src")

(2)接下来是图片的保存,我们可以使用如下代码把图片保存到本地文件中

import requests
# 复制图片地址
url1 = 'https://pic.qiushibaike.com/system/pictures/12468/124687700/medium/K6KDSRPLBG3BRKPK.jpg'
image = requests.get(url = url1).content
with open('./糗事百科图片.jpg','wb') as fp:
    fp.write(image)
print('图片下载结束')

(3)问题出现:图片链接明明和网页上的图片一样,图片下载下来或者在新的网页上打开时却发生了变化,即验证码图片发生了变化,这样哪怕后面使用OCR正确识别出来也不是我们需要输入的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值