【发布时间】:2021-10-04 16:27:29
【问题描述】:
Tl;dr 有没有办法从 https://cdn.discordapp URL 获取资产对象,例如 'https://cdn.discordapp.com/avatars/235088799074484224/9b29bfc497a70b6cc85bb2087936f8fd.webp?size=1024 '?
...我问,因为我已经构建了一个命令,它将在调用它的频道中发送给定成员的 discord.Member.avatar_url 作为消息。该消息的内容只是 cdn URL,如以上。
我还有一个命令将在引用的消息中处理图像。作为其中的一部分,我想将图像作为字节对象获取 - 这在处理附件时很简单,甚至在使用其他 URL 上的图像时也很简单,但是每当我使用 urllib.request.urlretrieve 时,我都会收到 HTTP 403 禁止错误在不和谐的 cdn URL 上。这是一个示例 sn-p:
url = "https://cdn.discordapp.com/avatars/235088799074484224/9b29bfc497a70b6cc85bb2087936f8fd.webp?size=1024"
filename = url.split("/")[-1]
urllib.request.urlretrieve(url, filename)
哪个加注
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPError: HTTP Error 403: Forbidden
所以我正在寻找另一种从不和谐 cdn url 中检索图像的方法。 discord.Asset 似乎是尝试完成此任务的最明智的类,但我看不到如何仅从不和谐的 cdn url 开始实例化它的对象。有没有办法做到这一点?或者有没有更好的方法来获取 cdn.discordapp 图像(从 url)作为字节?
编辑:我意识到您也可以通过检查给定消息的 discord.Embed.thumbnail.proxy_url 来获取代理 URL,但是在尝试从那里下载时我也收到 403 禁止。
【问题讨论】:
标签: python discord.py