知乎热榜生成图片
本帖最后由 dajing666 于 2021-3-24 12:04 编辑今天看见一个公众号发了知乎热榜的接口
突然想着生成图片每天推送给自己看看
参考https://mp.weixin.qq.com/s/G3RJF43-XRaClcDxXXooMA
本人是Python菜鸟,文字转图片代码百度找的,多行文字转换又卡半天555
下一步准备加上日期啥的 有想法的可以一起研究研究
import requests
import json
import pygame
import os
import pandas as pd
import re
from PIL import Image, ImageDraw, ImageFont
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)#忽略证书警告
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0',}
url = "https://api.zhihu.com/topstory/hot-list?limit=10&reverse_order=0"
res = requests.get(url, headers=headers, verify=False)
res.encoding = 'utf-8'
s = json.loads(res.text)
列表=[]
list = s['data']
for i in list:
title = i['target']['title']
列表.append(title)
def 加序号(line):
列表 = []
for i in range(len(line)):
dd="%s.%s" % (i + 1, line+"\n")
列表.append(dd)
return 列表
output_str="".join(加序号(列表))
print(output_str)
LINE_CHAR_COUNT = 50*2# 每行字符数:30个中文字符(=60英文字符)
CHAR_SIZE = 30
d_font = ImageFont.truetype('C:/Windows/Fonts/simsun.ttc', CHAR_SIZE)
lines = len(列表)# 计算行数
image = Image.new("L", (2000, 30*lines), "white")
draw_table = ImageDraw.Draw(im=image)
draw_table.text(xy=(0, 0), text=output_str, fill='#000000', font= d_font, spacing=4)# spacing调节机制不清楚如何计算
image.show()# 直接显示图片
image.save('1.png', 'PNG')# 保存在当前路径下,格式为PNG
image.close() 这个执行报错如下:
pygame 2.0.1 (SDL 2.0.14, Python 3.7.3)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "E:\py_files\Web\Zhihu\zhihu_hot_pic.py", line 26, in <module>
output_str="".join(加序号(列表))
File "E:\py_files\Web\Zhihu\zhihu_hot_pic.py", line 23, in 加序号
dd="%s.%s" % (i + 1, line+"\n")
TypeError: can only concatenate list (not "str") to list
exe文件
百度网盘链接:https://pan.baidu.com/s/1Ljnqr7Zxtp4Sno7VlqZUIQ提取码:jh3j
其余网盘暂未上传 能编译成exe分享下吗 能搞出来就是大佬! 就是说可以按标题找文章?
能编译成exe分享下吗 感觉其中最有价值的就是知乎的接口?
https://api.zhihu.com/topstory/hot-list?limit=10&reverse_order=0 dd="%s.%s" % (i + 1, line+"\n") dd="%s.%s" % (i + 1, line+"\n") 顶一下。。。。
页:
[1]
2