【问题标题】:Downloading Images from Discord Message从 Discord 消息下载图像
【发布时间】:2021-04-03 04:58:10
【问题描述】:
我怎样才能下载不和谐消息中的所有 iamge,但它们有一个随机名称,所以我没有 2 个不同的 image.jpegs 或 image.png??
注意:
我想从消息中获取图像
如果他们通过 url 发送图像而不是从那里获取图像消息 url
请帮忙
谢谢。
【问题讨论】:
标签:
python
python-3.x
discord
discord.py
【解决方案1】:
它会下载所有类型的图像/GIF,请参阅image_extensions。
适用于网址并通过聊天发送图像。
您可以选择保存图片的路径——例如images。
import discord
import os
import aiohttp
@client.event
async def on_message(message: discord.Message):
if valid_image_url(message.content):
await download_image(message.content, "images")
for attachment in message.attachments:
if valid_image_url(attachment.url):
await attachment.save(os.path.join("images", attachment.filename))
def valid_image_url(url: str):
image_extensions = ['png', 'jpg', 'jpeg', 'gif']
for image_extension in image_extensions:
if url.endswith('.' + image_extension):
return True
return False
async def download_image(url: str, images_path: str = ""):
async with aiohttp.ClientSession() as session:
async with session.get(url) as resp:
if resp.status == 200:
image_name = os.path.basename(url)
with open(os.path.join(images_path, image_name), "wb") as f:
f.write(await resp.read())