Python爬虫遇到验证码的处理方式有哪些
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"Python爬虫遇到验证码的处理方式有哪些",在日常操作中,相信很多人在Python爬虫遇到验证码的处理方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对
千家信息网最后更新 2026年10月31日Python爬虫遇到验证码的处理方式有哪些
这篇文章主要介绍"Python爬虫遇到验证码的处理方式有哪些",在日常操作中,相信很多人在Python爬虫遇到验证码的处理方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python爬虫遇到验证码的处理方式有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
封装源码:
学会调用百度的aip接口:
1. 首先需要注册一个账号:
https://login.bce.baidu.com/
注册完成之后登入
2. 创建项目
在这些技术里面找到文字识别,然后点击创建一下项目
创建完成之后:
图片中 AppID , API key, Secret Key 这些待会是需要用的。
下一步可以查看官网文档,或者直接使用我写的代码
3. 安装一下依赖库 pip install baidu-aip
这只是一个接口, 需要前面的一些设置。
def return_ocr_by_baidu(self, test_image): """ ps: 先在__init__ 函数中完成你自己的baidu_aip 的一些参数设置 这次测试使用 高精度版本测试 如果速度很慢 可以换回一般版本 self.client.basicGeneral(image, options) 相关参考网址: https://cloud.baidu.com/doc/OCR/s/3k3h7yeqa :param test_image: 待测试的文件名称 :return: 返回这个验证码的识别效果 如果错误 可以多次调用 """ image = self.return_image_content(test_image=self.return_path(test_image)) # 调用通用文字识别(高精度版) # self.client.basicAccurate(image) # 如果有可选参数 相关参数可以在上面的网址里面找到 options = {} options["detect_direction"] = "true" options["probability"] = "true" # 调用 result = self.client.basicAccurate(image, options) result_s = result['words_result'][0]['words'] # 不打印关闭 print(result_s) if result_s: return result_s.strip() else: raise Exception("The result is None , try it !")扩展百度的色情识别接口:
我们写代码肯定是要找点乐子的, 不可能这么枯燥无味吧?
色情识别接口在 内容审核中, 找一下就可以了。
调用方式源码:
# -*- coding : utf-8 -*- # @Time : 2020/10/22 17:30 # @author : 沙漏在下雨 # @Software : PyCharm # @CSDN : https://me.csdn.net/qq_45906219 from aip import AipContentCensor from ocr import MyOrc class Auditing(MyOrc): """ 这是一个调用百度内容审核的aip接口 主要用来审核一些色情 反恐 恶心 之类的东西 网址: https://ai.baidu.com/ai-doc/ANTIPORN/tk3h7xgkn """ def __init__(self): # super().__init__() APP_ID = '填写你的ID' API_KEY = '填写你的KEY' SECRET_KEY = '填写你的SECRET_KEY' self.client = AipContentCensor(APP_ID, API_KEY, SECRET_KEY) def return_path(self, test_image): return super().return_path(test_image) def return_image_content(self, test_image): return super().return_image_content(test_image) def return_Content_by_baidu_of_image(self, test_image, mode=0): """ 继承ocr中的一些方法, 因为都是放一起的 少些一点代码 内容审核: 关于图片中是否存在一些非法不良信息 内容审核还可以实现文本审核 我觉得有点鸡肋 就没一起封装进去 url: https://ai.baidu.com/ai-doc/ANTIPORN/Wk3h7xg56 :param test_image: 待测试的图片 可以本地文件 也可以网址 :param mode: 默认 = 0 表示 识别的本地文件 mode = 1 表示识别的图片网址连接 :return: 返回识别结果 """ if mode == 0: filepath = self.return_image_content(self.return_path(test_image=test_image)) elif mode == 1: filepath = test_image else: raise Exception("The mode is 0 or 1 but your mode is ", mode) # 调用色情识别接口 result = self.client.imageCensorUserDefined(filepath) # """ 如果图片是url调用如下 """ # result = self.client.imageCensorUserDefined('http://www.example.com/image.jpg') print(result) return result a = Auditing() a.return_Content_by_baidu_of_image("test_image/2.jpg", mode=0)学会muggle_ocr 识别接口:
这个包是最近火起来的, 使用起来很简单, 没多少其他函数
安装 pip install muggle-ocr 这个下载有点慢 最好使用手机热点 目前镜像网站(清华/阿里) 还没有更新到这个包 因为这个包是最新的一个ocr模型 12
调用接口
def return_ocr_by_muggle(self, test_image, mode=1): """ 调用这个函数使用 muggle_ocr 来进行识别 :param test_image 待测试的文件名称 最好绝对路径 :param 模型 mode = 0 即 ModelType.OCR 表示识别普通印刷文本 当 mode = 1 默认 即 ModelType.Captcha 表示识别4-6位简单英输验证码 官方网站: https://pypi.org/project/muggle-ocr/ :return: 返回这个验证码的识别结果 如果错误 可以多次调用 """ # 确定识别物品 if mode == 1: sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha) elif mode == 0: sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR) else: raise Exception("The mode is 0 or 1 , but your mode == ", mode) filepath = self.return_path(test_image=test_image) with open(filepath, 'rb') as fr: captcha_bytes = fr.read() result = sdk.predict(image_bytes=captcha_bytes) # 不打印关闭 print(result) return result.strip()封装源码:
# -*- coding : utf-8 -*- # @Time : 2020/10/22 14:12 # @author : 沙漏在下雨 # @Software : PyCharm # @CSDN : https://me.csdn.net/qq_45906219 import muggle_ocr import os from aip import AipOcr """ PS: 这个作用主要是作了一个封装 把2个常用的图片/验证码识别方式合在一起 怎么用 取决于自己 接口1: muggle_ocr pip install muggle-ocr 这个下载有点慢 最好使用手机热点 目前镜像网站(清华/阿里) 还没有更新到这个包 因为这个包是最新的一个ocr模型 接口2: baidu-aip pip install baidu-aip 这个知道的人应该很多很多, 但是我觉得还是muggle 这个新包猛的一比 调用方式 可以参考官网文档: https://cloud.baidu.com/doc/OCR/index.html 或者使用我如下的方式 都是ok的 :param image_path 待识别的图片路径 如果目录很深 推荐使用绝对路径 """ class MyOrc: def __init__(self): # 设置一些必要信息 使用自己百度aip的内容 APP_ID = '你的ID' API_KEY = '你的KEY' SECRET_KEY = '你的SECRET_KEY' self.client = AipOcr(APP_ID, API_KEY, SECRET_KEY) def return_path(self, test_image): """:return abs image_path""" # 确定路径 if os.path.isabs(test_image): filepath = test_image else: filepath = os.path.abspath(test_image) return filepath def return_image_content(self, test_image): """:return the image content """ with open(test_image, 'rb') as fr: return fr.read() def return_ocr_by_baidu(self, test_image): """ ps: 先在__init__ 函数中完成你自己的baidu_aip 的一些参数设置 这次测试使用 高精度版本测试 如果速度很慢 可以换回一般版本 self.client.basicGeneral(image, options) 相关参考网址: https://cloud.baidu.com/doc/OCR/s/3k3h7yeqa :param test_image: 待测试的文件名称 :return: 返回这个验证码的识别效果 如果错误 可以多次调用 """ image = self.return_image_content(test_image=self.return_path(test_image)) # 调用通用文字识别(高精度版) # self.client.basicAccurate(image) # 如果有可选参数 相关参数可以在上面的网址里面找到 options = {} options["detect_direction"] = "true" options["probability"] = "true" # 调用 result = self.client.basicAccurate(image, options) result_s = result['words_result'][0]['words'] # 不打印关闭 print(result_s) if result_s: return result_s.strip() else: raise Exception("The result is None , try it !") def return_ocr_by_muggle(self, test_image, mode=1): """ 调用这个函数使用 muggle_ocr 来进行识别 :param test_image 待测试的文件名称 最好绝对路径 :param 模型 mode = 0 即 ModelType.OCR 表示识别普通印刷文本 当 mode = 1 默认 即 ModelType.Captcha 表示识别4-6位简单英输验证码 官方网站: https://pypi.org/project/muggle-ocr/ :return: 返回这个验证码的识别结果 如果错误 可以多次调用 """ # 确定识别物品 if mode == 1: sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha) elif mode == 0: sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR) else: raise Exception("The mode is 0 or 1 , but your mode == ", mode) filepath = self.return_path(test_image=test_image) with open(filepath, 'rb') as fr: captcha_bytes = fr.read() result = sdk.predict(image_bytes=captcha_bytes) # 不打印关闭 print(result) return result.strip() # a = MyOrc() # a.return_ocr_by_baidu(test_image='test_image/digit_img_1.png')到此,关于"Python爬虫遇到验证码的处理方式有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
验证
接口
测试
方式
图片
网址
参数
文件
内容
函数
网站
路径
爬虫
处理
名称
最好
模型
版本
色情
错误
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
疫情对互联网科技公司影响
互联网与科技金融数据
互联网与新科技
有木互联网科技
互联网金融 科技创新
互联网科技的未来发展
中国互联网金融科技基金
汉立互联网科技有限公司联系电话
成都互联网科技公司100强
成都铂石互联网科技做什么的
互联网科技人工智能实验室
科技互联网的核心竞争力
互联网金融科技公司的优势
互联网科技实习生岗位
世界互联网科技成果奖
互联网科技新闻
青岛易易互联网科技
杭州科技互联网公司有哪些
优雇互联网科技有限公司
互联网科技行业发展
疫情对互联网科技公司影响
宜安科技 互联网金融
西藏七维空间互联网科技有限公司
广州市恰铎互联网科技有限公司
明优互联网科技有限公司
风投北京互联网科技
宁波跨境商互联网科技有限公司
互联网金融运营模式中的金融科技
中国主要互联网科技公司