代码拉取完成,页面将自动刷新
# -*- coding:utf-8 -*-
import time
from PIL import Image, ImageDraw, ImageFont
# 安装库:pip install Pillow
import requests
# 调用get方法,下载这个字典
res_music = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=60997426243444153&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=%E5%91%A8%E6%9D%B0%E4%BC%A6&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq.json&needNewCode=0')
# 使用json()方法,将response对象,转为列表/字典
json_music = res_music.json()
# 一层一层地取字典,获取歌单列表
list_music = json_music['data']['song']['list']
# list_music是一个列表,music是它里面的元素
i = 0
for music in list_music[0:3]:
# # 以name为键,查找歌曲名
# print(music['name'])
# # 查找专辑名
# print('所属专辑:'+music['album']['name'])
# # 查找播放时长
# print('播放时长:'+str(music['interval'])+'秒')
# # 查找播放链接
# print('播放链接:https://y.qq.com/n/yqq/song/'+music['mid']+'.html\n\n')
header = 'Number'+ str(i+1)
i+=1
title = str(music['name'])
summary = ['所属专辑:'+'《' + music['album']['name'] + '》', '歌曲时长:'+str(music['interval'])+'秒','歌手:周杰伦','发布时间:'+str(music['time_public'])]
writes = 'https://y.qq.com/n/yqq/song/' + str(music['mid']) + '.html\n\n'
# 图片名称
img = title+".png" # 图片模板
new_img = "final_"+title+".png" # 生成的图片
# 设置字体样式
font_type = "C:/Windows/Fonts/STXINWEI.TTF"
font_medium_type = "C:/Windows/Fonts/STKAITI.TTF"
header_font = ImageFont.truetype(font_type, 55)
title_font = ImageFont.truetype(font_type, 45)
font = ImageFont.truetype(font_medium_type, 20)
# ImageFont.truetype第一个参数为字体,第二个为字体大小
color = "#000000"
# 打开图片
image = Image.open(img)
draw = ImageDraw.Draw(image)
width, height = image.size
# 写入header
header_x = 40
header_y = 650
# 数字越小,字在图片上的位置越偏下
draw.text((header_x, height - header_y), u'%s' % header, color, header_font)
# 写入标题
title_x = header_x
title_y = header_y - 80
draw.text((title_x, height - title_y), u'%s' % title, color, title_font)
# 写入歌曲信息
summary_x = title_x
summary_start_y = title_y - 150
# title后面剪的越多,字越偏下
summary_y = 0
summary_line = 50
information = '歌曲信息'
setFont = ImageFont.truetype('C:/windows/fonts/STXINGKA.TTF', 25)
draw.text((summary_x, height - summary_start_y-40), information, font=setFont, fill="#000000", direction=None)
for num, one in enumerate(summary):
y = summary_start_y - num * summary_line
summary_num = num + 1
draw.text((summary_x, height - y), u'%s. %s' % (summary_num, one), color, font)
# 写入链接
write_x = summary_x
write_y = title_y - 400
write_line = 40
information = '播放链接:'
setFont = ImageFont.truetype('C:/windows/fonts/STXINGKA.TTF', 25)
draw.text((write_x, height - write_y), information, font=setFont, fill="#000000", direction=None)
draw.text((write_x, height - write_y + write_line), writes, font=font, fill="#0000ff", direction=None)
# 生成图片
image.save(new_img, 'png')
#制作完成
print("歌曲《"+title+"》"+"的海报已生成")
time.sleep(2)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。