Discord.py у меня есть команда которая выводит стату из R6S при помощи парсинг одного сайта. Мне надо получить png url картинки из url svg
Я пробовал делать через cairosvg и не получилось картинку он скачал, но путь до неё не подошёл вот все библиотеки которые есть.
import discord
from discord.ext import tasks, commands
from config import settings
from bs4 import BeautifulSoup
import requests
import random
import os
import asyncio
import re
from urllib.request import *
from cairosvg import svg2png
from PIL import Image
и сам код
URL = None
HEADERS = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36'}
@bot.command()
async def stats(ctx, nick):
global URL
website = 'https://r6.tracker.network/profile/pc/'
URL = website + nick
def get_html(url):
global HEADERS
r = requests.get(url, headers=HEADERS)
return r
def get_content(html):
soup = BeautifulSoup(html, 'html.parser')
items = soup.find_all('div', class_='trn-text--dimmed')
img = soup.find('div', class_='trn-profile-header__avatar').find('img')
rank_img = soup.find('div', style='width: 50px; margin-right: 14px;').find('img')
ranks = []
for item in items:
title = item.get_text(strip=True)
ranks.append({
'title': title,
})
MMR = ranks[1]['title']
TRANK = ranks[0]['title']
print(MMR)
print(TRANK)
print(rank_img['src'])
return MMR, TRANK, img['src'], rank_img['src']
def parse():
global URL
html = get_html(URL)
if html.status_code == 200:
print('Connect to website')
mmr_rank = get_content(html.text)
return mmr_rank
else:
print('Error')
try:
mmr_rank = parse()
rank_img = svg2png(url=mmr_rank[3], write_to='rank.png')
#print(rank_img)
if mmr_rank[0] in mmr_rank:
emb = discord.Embed(color=0xfab319)
emb.set_author(name=nick, icon_url=mmr_rank[2])
emb.add_field(name='RANK', value=mmr_rank[1])
emb.add_field(name='MMR', value=mmr_rank[0])
emb.set_thumbnail(url ='/Desktop/MyWorks/anton/rank.png')
await ctx.send(embed=emb)
except Exception as e:
print(e)
os.remove('rank.png')