目标图片:`https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg` 发现这个图片可以直接在浏览器打开,在我的 mac 上也可以使用 wget 直接下载  ╰─➤ wget https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_\!\!2216508591143.jpg --2024-08-08 10:23:38-- https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg Resolving img.alicdn.com (img.alicdn.com)... 39.183.55.234, 39.183.55.233 Connecting to img.alicdn.com (img.alicdn.com)|39.183.55.234|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 64164 (63K) [image/webp] Saving to: ‘O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg’ O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143 100%[===============================================================================>] 62.66K --.-KB/s in 0.01s 2024-08-08 10:23:38 (4.83 MB/s) - ‘O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg’ saved [64164/64164] 但是因为我的服务是部署在 aliyun 的 ack,但是我发现在 aliyun ack 访问这个图片居然就是 420 ! 写了下面的测试代码 import os import requests from PIL import Image def download_image(url, save_path): response = requests.get(url) if response.status_code == 200: with open(save_path, 'wb') as f: f.write(response.content) if os.path.getsize(save_path) > 0: # 检查文件是否为空 try: image = Image.open(save_path) width, height = image.size file_size = len(response.content) print(f"图片分辨率为:{width}x{height}") print(f"图片体积大小为:{file_size} 字节") except Exception as e: print(f"打开图片时出错: {e}") else: print("文件为空或未下载正确") else: print(f"请求失败,状态码: {response.status_code}") url = 'https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg' save_path = 'image.jpg' # 你可以修改保存的文件名和路径 download_image(url, save_path) 上面的代码,在我的 mac 上的执行效果 图片分辨率为:800x800 图片体积大小为:64164 字节 在 aliyun ack 内的 pod 的执行效果 请求失败,状态码: 420 大无语了! * * * 加上响应体 import os import requests from PIL import Image def download_image(url, save_path): response = requests.get(url) if response.status_code == 200: with open(save_path, 'wb') as f: f.write(response.content) if os.path.getsize(save_path) > 0: # 检查文件是否为空 try: image = Image.open(save_path) width, height = image.size file_size = len(response.content) print(f"图片分辨率为:{width}x{height}") print(f"图片体积大小为:{file_size} 字节") except Exception as e: print(f"打开图片时出错: {e}") else: print("文件为空或未下载正确") else: print(f"请求失败,状态码: {response.status_code}") print(f"请求失败,响应体: {response.text}") url = 'https://img.alicdn.com/imgextra/O1CN01MW6Bpi1KJXbwTYrw5_!!2216508591143.jpg' save_path = 'image.jpg' # 你可以修改保存的文件名和路径 download_image(url, save_path) 在 aliyun 服务器的运行结果 请求失败,状态码: 420 请求失败,响应体: {"rgv587_flag":"sm","url":"https://g.alicdn.com/sd/punish/wait_h5.html?qrcode=H4iDIyXmTNtmslddCOzs9A|ZrWHmw|7jG4bg_0&uuid=1f88832325e64cdb66b2575d08ececf4&action=wait&origin=http%3A%2F%2Fimg.alicdn.com%2Fbao%2Fuploaded%2Fi4%2F515239285%2FO1CN01lwJoSs2ISa2iY0jBF_%21%21515239285.jpg_.webp"}