You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python通过GET请求获取Axis网络摄像头图片?解决401认证错误问题

解决Axis网络摄像头GET请求401认证错误的方案

我之前也踩过Axis摄像头认证的坑,给你几个实用的排查和解决方向:

1. 优先切换为Digest认证(Axis设备默认常用)

大部分Axis网络摄像头默认采用Digest认证,而非你尝试的Basic认证,这就是HTTPBasicAuth失效的核心原因。试试用HTTPDigestAuth替换:

import requests
from requests.auth import HTTPDigestAuth

# 替换为你的设备信息
camera_url = "http://xxx.xxx.xxx.xxx/axis-cgi/jpg/image.cgi"
username = "xxx"
password = "xxx"

response = requests.get(camera_url, auth=HTTPDigestAuth(username, password))
print(f"响应状态码: {response.status_code}")

# 如果请求成功,保存图片
if response.status_code == 200:
    with open("camera_snapshot.jpg", "wb") as img_file:
        img_file.write(response.content)
    print("图片保存成功!")

2. 确认API路径是否正确

你之前用的/jpg/image.jpg并非Axis设备的标准快照路径,官方推荐的图片获取路径是/axis-cgi/jpg/image.cgi。路径错误也可能返回401或404,建议先在浏览器里直接访问这个标准路径,测试是否需要认证后能正常显示图片。

3. 尝试URL嵌入认证信息(备选测试方案)

有些环境下,直接在URL里嵌入用户名和密码也能绕过认证问题(安全性稍低,仅作测试用):

import requests

username = "xxx"
password = "xxx"
camera_url = f"http://{username}:{password}@xxx.xxx.xxx.xxx/axis-cgi/jpg/image.cgi"

response = requests.get(camera_url)
print(f"响应状态码: {response.status_code}")

4. 检查摄像头后台设置

  • 登录摄像头Web管理界面,进入「系统选项」→「安全」→「认证」,确认当前认证模式是Digest还是Basic,或者是否开启了匿名访问(开启后无需认证即可获取图片)。
  • 核对用户名密码:Axis默认管理员账号是root,初始密码通常是设备序列号(未修改过的情况),注意账号密码区分大小写。
  • 检查IP白名单:如果设备设置了IP访问限制,确保运行Python脚本的机器IP在允许列表内。

内容的提问来源于stack exchange,提问作者mimus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 02:47:35