跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python 调用智谱 GLM-4V 实现图片视觉识别与验证码解析

介绍使用 Python 调用智谱 GLM-4V 多模态大模型进行图片视觉识别的方法。涵盖本地图片、网页截图及 Base64 编码三种输入方式,重点演示了 hCaptcha 验证码的识别流程。通过封装通用函数,结合 DrissionPage 实现自动化截图与解析,提供环境配置、代码示例及优化建议,帮助开发者高效落地图像识别场景。

CodeArtist发布于 2026/3/29更新于 2026/7/2553 浏览

Python 调用智谱 GLM-4V 实现图片视觉识别(本地/网页图片通用)

智谱 GLM-4V 是高性能多模态大模型,支持图片 + 文本的混合输入,能精准识别图片内容(如验证码、图文分析、物体识别等)。本文将手把手教你实现本地图片、网页截图、Base64 编码图片三种方式调用 GLM-4V,结合实际场景(hCaptcha 验证码识别)完成落地。

一、核心知识点

  • GLM-4V 调用规则:图片需转为 Base64 编码传入 API
  • 适配场景:本地图片识别、网页截图识别、验证码解析
  • 核心库:requests(接口调用)、pillow(图片处理)、DrissionPage(网页截图)

二、环境准备

1. 安装依赖
# 基础依赖
pip install requests pillow
# 网页自动化/截图(可选,用于网页图片场景)
pip install DrissionPage
# 数据解析(可选)
pip install json re
2. 智谱 AI 配置
  1. 注册智谱 AI 开发者账号:https://open.bigmodel.cn/
  2. 获取 API Key(控制台-API 密钥管理)
  3. 确保账号余额充足(GLM-4V 单次调用成本≈0.006 元,极低)

三、通用封装:GLM-4V 调用核心函数

先封装通用调用函数,适配所有图片输入方式:

import requests
import base64
import json

# 智谱 AI 配置(替换为你的密钥)
AI_CONFIG = {
    "api_key": "你的 GLM-4V API Key",
    "base_url": "https://open.bigmodel.cn/api/paas/v4/chat/completions",
    "model": "glm-4v-plus"
}

def encode_image_to_base64(image_path):
    """ 本地图片转 Base64 编码(核心步骤)
    :param image_path: 本地图片路径
    :return: Base64 编码字符串
    """
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

def ():
    
    
      is_base64:
        base64_img = encode_image_to_base64(image_content)
    :
        base64_img = image_content

    
    headers = {
        : ,
        : 
    }

    
    payload = {
        : AI_CONFIG[],
        : [{
            : ,
            : [
                {: , : prompt},
                {: , : {: base64_img}}
            ]
        }],
        : ,
        : 
    }

    
    :
        response = requests.post(
            AI_CONFIG[],
            headers=headers,
            json=payload,
            timeout=
        )
        response.raise_for_status()
        result = response.json()
         result[][][][]
     Exception  e:
         Exception()
call_glm4v
image_content, prompt, is_base64=False
""" 调用 GLM-4V 模型 :param image_content: 图片内容(本地路径/Base64 字符串) :param prompt: 提示词 :param is_base64: 是否为 Base64 编码(False=本地路径,True=Base64 字符串) :return: AI 响应文本 """
# 处理图片输入
if
not
else
# 请求头
"Content-Type"
"application/json"
"Authorization"
f"Bearer {AI_CONFIG['api_key']}"
# 请求体(智谱 GLM-4V 标准格式)
"model"
"model"
"messages"
"role"
"user"
"content"
"type"
"text"
"text"
"type"
"image_url"
"image_url"
"url"
"max_tokens"
1000
"temperature"
0.1
# 发送请求
try
"base_url"
60
return
"choices"
0
"message"
"content"
except
as
raise
f"GLM-4V 调用失败:{str(e)}"

四、场景 1:本地图片调用 GLM-4V

适用场景

识别本地保存的图片(如验证码截图、产品图片、文档图片等)。

完整示例(识别验证码)
def local_image_demo():
    """本地图片调用 GLM-4V 示例(识别验证码)"""
    # 1. 本地图片路径
    local_img_path = "captcha_screenshot.png"

    # 2. 定制化提示词(以 hCaptcha 九宫格验证码为例)
    prompt = """ 图片尺寸 400×600,坐标系左上角 (0,0)、右下角 (1000,1000),3×3 九宫格验证码。 输出格式:[(x,y), (x,y)],仅返回坐标列表,无多余文字。 """

    # 3. 调用 GLM-4V
    try:
        ai_response = call_glm4v(local_img_path, prompt)
        print("AI 识别结果:", ai_response)

        # 4. 解析坐标(可选,根据实际需求)
        import re
        coord_pattern = r'\((\d+),(\d+)\)'
        coords = re.findall(coord_pattern, ai_response)
        coords = [(int(x), int(y)) for x, y in coords]
        print("解析后的坐标:", coords)
    except Exception as e:
        print("识别失败:", e)

if __name__ == "__main__":
    local_image_demo()

五、场景 2:网页截图+GLM-4V 识别

适用场景

自动化爬虫中实时截取网页元素(如验证码、弹窗图片)并识别。

完整示例(DrissionPage 截图+GLM-4V 识别)
from DrissionPage import ChromiumPage, ChromiumOptions

def web_screenshot_demo():
    """网页截图+GLM-4V 识别示例(验证码)"""
    # 1. 初始化浏览器
    co = ChromiumOptions().auto_port()
    page = ChromiumPage(co)
    try:
        # 2. 访问目标页面(示例:带 hCaptcha 的页面)
        page.get("https://你的目标网址.com")

        # 3. 定位验证码区域并截图
        captcha_ele = page.ele('.xxxxxx')
        screenshot_path = "web_captcha.png"
        captcha_ele.get_screenshot(screenshot_path)
        print(f"网页截图已保存:{screenshot_path}")

        # 4. 调用 GLM-4V 识别
        prompt = """ 分析这张验证码图片,返回所有'有尾巴的动物'的中心坐标,格式:[(x,y), (x,y)] 仅返回坐标,无其他文字。 """
        ai_response = call_glm4v(screenshot_path, prompt)
        print("验证码识别结果:", ai_response)
    finally:
        page.close()

if __name__ == "__main__":
    web_screenshot_demo()

六、场景 3:Base64 编码图片调用 GLM-4V

适用场景

图片已在内存中(如网络请求返回的图片、二进制流),无需保存到本地。

完整示例
def base64_image_demo():
    """Base64 编码图片调用 GLM-4V 示例"""
    # 1. 模拟获取 Base64 图片(实际场景可从网络/内存读取)
    # 方式 1:本地图片转 Base64(测试用)
    base64_img = encode_image_to_base64("captcha.png")

    # 方式 2:网络图片转 Base64(实际场景)
    # import requests
    # img_response = requests.get("https://xxx.com/captcha.png")
    # base64_img = base64.b64encode(img_response.content).decode('utf-8')

    # 2. 调用 GLM-4V(指定 is_base64=True)
    prompt = "识别这张图片中的所有动物名称,仅返回名称列表,用逗号分隔"
    ai_response = call_glm4v(base64_img, prompt, is_base64=True)
    print("Base64 图片识别结果:", ai_response)

if __name__ == "__main__":
    base64_image_demo()

七、避坑指南&优化建议

1. 常见问题解决
  • API 调用失败:检查 API Key 是否正确、账号是否有余额、请求格式是否符合智谱规范
  • 图片识别不准确:精简提示词、明确输出格式、降低 temperature(建议 0.1-0.3)
  • Base64 编码错误:确保编码后无多余空格/换行,使用 UTF-8 解码
2. 优化技巧
  • 成本控制:限制 max_tokens(如 500)、精简提示词减少 Tokens 消耗
  • 效率提升:复用浏览器实例、图片压缩后再编码(验证码建议 400×600)
  • 稳定性:添加重试机制(API 调用失败后重试 2-3 次)
3. 注意事项
  • 遵守网站 robots 协议,合法合规使用
  • 高频率调用需添加请求间隔,避免触发 API 限流
  • 敏感场景(如验证码)建议使用低随机性(temperature=0.1)

八、总结

  1. GLM-4V 调用核心是图片转 Base64 编码,本地/网页/Base64 图片均适用此逻辑;
  2. 定制化提示词是识别精准度的关键,需明确任务、规则、输出格式;
  3. 结合 DrissionPage 可实现网页图片的全自动截图 + 识别 + 交互,落地各类视觉识别场景。

通过本文的封装函数和场景示例,你可以快速实现各类图片的 GLM-4V 视觉识别,无论是本地图片分析、网页验证码破解,还是自动化爬虫中的图片处理,都能高效落地。

目录

  1. Python 调用智谱 GLM-4V 实现图片视觉识别(本地/网页图片通用)
  2. 一、核心知识点
  3. 二、环境准备
  4. 1. 安装依赖
  5. 基础依赖
  6. 网页自动化/截图(可选,用于网页图片场景)
  7. 数据解析(可选)
  8. 2. 智谱 AI 配置
  9. 三、通用封装:GLM-4V 调用核心函数
  10. 智谱 AI 配置(替换为你的密钥)
  11. 四、场景 1:本地图片调用 GLM-4V
  12. 适用场景
  13. 完整示例(识别验证码)
  14. 五、场景 2:网页截图+GLM-4V 识别
  15. 适用场景
  16. 完整示例(DrissionPage 截图+GLM-4V 识别)
  17. 六、场景 3:Base64 编码图片调用 GLM-4V
  18. 适用场景
  19. 完整示例
  20. 七、避坑指南&优化建议
  21. 1. 常见问题解决
  22. 2. 优化技巧
  23. 3. 注意事项
  24. 八、总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 微信小程序 WebView 与 H5 页面双向通信实战指南
  • VSCode Copilot 认证失败排查与修复指南
  • AI 写作辅助平台深度评测:炼字工坊与蛙蛙写作
  • Toonflow AI 短剧工厂:一站式 AI 短剧创作平台
  • Python 工具 uv 安装指南:解决 command not found 错误
  • DIY Layout Creator 跨平台开源电路设计工具指南
  • Windows 11 开启 WSL 完整指南
  • AMD 显卡加速 Whisper 语音识别:从环境配置到性能优化实战
  • OpenClaw 机器人本地部署与配置实战
  • Cap 开源录屏工具全方位应用指南
  • llama.cpp Docker 镜像国内加速下载地址
  • AI Agent 新范式:FastGPT 结合 MCP 协议构建工具增强智能体
  • 使用 NVM 安装 Node.js 22 并配置国内镜像源
  • Vue3 模板语法详解:插值、指令与响应式数据
  • AI 赋能产品经理:工作流提效与职业转型实战
  • Linux 下 FFmpeg C++音视频解码与推流开发实战
  • Linux 命令行核心实战:Git 提交、权限控制与常用快捷键
  • 光伏产品缺陷检测 AI 深度学习算法
  • 小米 MiMo-V2 系列发布:国产 AI 大模型新进展
  • llama.cpp Docker 镜像国内加速下载地址

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online