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

伪造HTTP Get请求下载图片遇权限拒绝问题求助

解决Ottawa交通摄像头图片权限拒绝的问题

你遇到的核心问题是:你请求的URL是展示摄像头图片的网页,而非图片的直接下载链接,所以你保存的其实是网页内容(或者网页中加载的权限拦截图),不是真实的摄像头画面。下面是具体的解决步骤和代码:

问题分析

当你访问http://traffic.ottawa.ca/map/camera?id=95时,浏览器加载的是一个完整的网页,这个网页里会嵌入真实的摄像头图片资源。直接请求这个网页URL,requests返回的是HTML代码,而非图片二进制数据,自然无法得到你想要的画面。

解决方案

我们需要先请求网页,解析HTML提取出真实的图片URL,再针对这个图片URL发起请求,同时带上必要的请求头模拟浏览器行为,避免被网站拦截。

步骤1:安装依赖

首先需要安装HTML解析库beautifulsoup4,用来提取网页中的图片地址:

pip install beautifulsoup4

步骤2:修改后的代码

import shutil
import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup

# 生成模拟浏览器的User-Agent,并添加Referer头(告诉网站我们是从目标页面跳转过来的)
ua = UserAgent()
headers = {
    'User-Agent': str(ua.chrome),
    'Referer': 'http://traffic.ottawa.ca/map/camera?id=95'
}

# 第一步:请求网页,提取真实图片URL
page_url = "http://traffic.ottawa.ca/map/camera?id=95"
page_response = requests.get(page_url, headers=headers)
soup = BeautifulSoup(page_response.text, 'html.parser')

# 从网页中定位摄像头图片元素(需要根据实际网页结构调整选择器)
# 你可以用浏览器开发者工具查看网页源码,找到图片标签的id/class属性
camera_img = soup.find('img', id='camera-image')
if not camera_img:
    print("无法在网页中找到摄像头图片元素,请检查网页结构")
else:
    # 提取图片地址,处理相对路径的情况
    img_url = camera_img['src']
    if not img_url.startswith('http'):
        img_url = f"http://traffic.ottawa.ca{img_url}"
    
    # 第二步:请求真实图片资源
    img_response = requests.get(img_url, headers=headers, stream=True)
    if img_response.status_code == 200:
        with open('img1.png', 'wb') as out_file:
            shutil.copyfileobj(img_response.raw, out_file)
        print("摄像头图片已成功保存!")
    else:
        print(f"请求图片失败,状态码:{img_response.status_code}")

额外注意事项

  • 检查网页结构:如果代码中find('img', id='camera-image')找不到元素,打开浏览器的开发者工具(F12),查看目标网页的HTML源码,找到摄像头图片对应的img标签,调整选择器(比如用class属性find('img', class_='camera-img'))。
  • 反爬机制:如果仍然遇到权限拒绝,可能网站需要验证Cookie。你可以先在浏览器中打开目标页面,从开发者工具的"网络"面板复制请求头中的Cookie,添加到headers字典中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:35:42