【愚公系列】《Python网络爬虫从入门到精通》047-验证码识别(第三方验证码识别)

举报
愚公搬代码 发表于 2025/05/16 21:34:34 2025/05/16
【摘要】 🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!💎【行业认证·权威头衔】 ✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者...

🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟

📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主!

👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"挖山不止"的毅力为开发者们搬开知识道路上的重重阻碍!

💎【行业认证·权威头衔】 ✔ 华为云天团核心成员:特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯:CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋:横跨鸿蒙、云计算、AI等前沿领域的技术布道者

🏆【荣誉殿堂】 🎖 连续三年蝉联"华为云十佳博主"(2022-2024) 🎖 双冠加冕CSDN"年度博客之星TOP2"(2022&2023) 🎖 十余个技术社区年度杰出贡献奖得主

📚【知识宝库】 覆盖全栈技术矩阵: ◾ 编程语言:.NET/Java/Python/Go/Node... ◾ 移动生态:HarmonyOS/iOS/Android/小程序 ◾ 前沿领域:物联网/网络安全/大数据/AI/元宇宙 ◾ 游戏开发:Unity3D引擎深度解析 每日更新硬核教程+实战案例,助你打通技术任督二脉!

💌【特别邀请】 正在构建技术人脉圈的你: 👍 如果这篇推文让你收获满满,点击"在看"传递技术火炬 💬 在评论区留下你最想学习的技术方向 ⭐ 点击"收藏"建立你的私人知识库 🔔 关注公众号获取独家技术内参 ✨与其仰望大神,不如成为大神!关注"愚公搬代码",让坚持的力量带你穿越技术迷雾,见证从量变到质变的奇迹!✨ |

🚀前言

在爬虫开发中,验证码是我们需要面对的一个挑战,尤其是当我们遇到更加复杂的验证码时,如何识别它们成为了一个难题。

本篇文章,我们将讨论如何使用第三方验证码识别服务来突破这一障碍。相比传统的图像处理与OCR技术,第三方验证码识别服务提供了更为高效和精准的解决方案。通过调用这些服务,我们可以大大简化验证码识别的流程,提升爬虫的自动化程度。

在这篇文章中,我们将涵盖以下内容:

  1. 第三方验证码识别服务概述:了解市面上常见的第三方验证码识别服务及其优势。
  2. 如何使用Python调用第三方验证码识别API:讲解如何接入这些服务,并进行验证码的自动识别。
  3. 实战案例:通过实际案例,展示如何将第三方验证码识别应用到爬虫项目中。

通过本篇文章的学习,你将掌握如何快速有效地处理复杂的验证码,提升你爬虫的执行效率和成功率。让我们一起探索第三方验证码识别的魅力吧!

🚀一、第三方验证码识别

🔎1.第三方平台分类

  1. 打码平台
    • 依赖人工在线识别验证码,短时间内返回结果。
    • 特点:高准确率。
  2. AI开发者平台
    • 基于人工智能自动识别(如百度AI)。
    • 特点:自动化程度高,适合批量处理,但需训练或调用API。

🔎2.超级鹰平台使用流程

步骤1:注册账号

  1. 访问官网:http://www.chaojiying.com/,完成注册并登录。
在这里插入图片描述在这里插入图片描述

步骤2:下载示例代码

  1. 导航栏选择 开发文档 → Python语言 → 下载示例代码。
  2. 注意查看代码中的参数配置说明。
在这里插入图片描述在这里插入图片描述

步骤3:代码封装与调用

  • 平台提供封装好的Python类 Chaojiying_Client,核心功能包括:
    #!/usr/bin/env python
    # coding:utf-8
    
    import requests            # 网络请求模块
    from hashlib import md5    # 加密
    
    class Chaojiying_Client(object):
    
      def __init__(self, username, password, soft_id):
          self.username = username               # 自己注册的账号
          password =  password.encode('utf8')    # 自己注册的密码
          self.password = md5(password).hexdigest()
          self.soft_id = soft_id                 # 软件id
          self.base_params = {                   # 组合表单数据
              'user': self.username,
              'pass2': self.password,
              'softid': self.soft_id,
          }
          self.headers = {                        # 请求头信息
              'Connection': 'Keep-Alive',
              'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
          }
    
      def PostPic(self, im, codetype):
          """
          im: 图片字节
          codetype: 题目类型 参考 http://www.chaojiying.com/price.html
          """
          params = {
              'codetype': codetype,
          }
          params.update(self.base_params)          # 更新表单参数
          files = {'userfile': ('ccc.jpg', im)}    # 上传验证码图片
          # 发送网络请求
          r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
          return r.json()   # 返回响应数据
    
      def ReportError(self, im_id):
          """
          im_id:报错题目的图片ID
          """
          params = {
              'id': im_id,
          }
          params.update(self.base_params)
          r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
          return r.json()
    

🔎3. 调用示例

示例:识别本地验证码图片

if __name__ == '__main__':
    chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001') #用户中心>>软件ID 生成一个替换 96001
    im = open('a.jpg', 'rb').read()             #本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
    print(chaojiying.PostPic(im, 1902)) 

输出解析

  • err_no=0 表示成功,pic_str 为识别结果(如 7261)。
  • 若失败,调用 ReportError(im_id) 反馈错误。

🔎4.验证码类型参考

在这里插入图片描述在这里插入图片描述
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。