我怎么能下载不和谐消息中的所有图像,但有一个随机名称,所以我没有 2 个不同的 image.jpegs 或 image.png ??
注意: 我想从消息中获取图像 如果他们通过 url 发送图像而不是从那里获取图像消息 url
请帮忙 谢谢。
答案 0 :(得分:3)
它会下载所有类型的图像/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())
答案 1 :(得分:-2)
好吧,如果你想下载 dms 中的每一个不和谐图像,我无法帮助你,但我知道一种通过编写代码来下载图像的方法。此脚本将使用您选择的名称创建一个新的 png,并在您编码的任何 ide 或文本编辑器中使其成为图像。
import requests
r = requests.get("Image link")
with open("your_specified_picture_name.png", 'wb') as f:
f.write(r.content)