如何使用Python将多张图片上传至Telegraph并调用create_page方法?
可以实现,不过需要先完成「本地图片上传到Telegraph图床获取直链」、「按Telegraph要求的格式组装内容」两步,再调用create_page方法即可,具体操作如下:
具体操作步骤
第一步:上传本地图片到Telegraph获取直链
create_page不直接接收本地图片文件,你需要先把本地图片传到Telegraph官方图床拿到可用的URL,示例代码如下:
from telegraph import Telegraph, upload_file # 初始化Telegraph实例 telegraph = Telegraph() # 首次使用需要创建账号,short_name可自定义 telegraph.create_account(short_name='custom_name') # 上传单张本地图片,返回的是相对路径,需要拼接Telegraph域名生成完整直链 img_relative_path = upload_file('本地图片存储路径.jpg') img_url = 'https://telegra.ph' + img_relative_path[0]
如果有多张图片,循环执行上述上传逻辑,把所有图片的直链存到列表中即可。
第二步:组装符合要求的content参数
create_page的content参数要求传入Telegraph Node格式的列表,每个图片对应一个固定格式的节点,规则如下:
- 图片节点格式为
['img', {'src': '图片直链'}] - 如果需要在图片之间插入文字,可追加格式为
['p', {}, '文字内容']的节点
多张图片的组装示例:
# 假设你已经上传完所有图片,直链存储在img_urls列表中 img_urls = [ 'https://telegra.ph/file/xxxx1.jpg', 'https://telegra.ph/file/xxxx2.jpg', 'https://telegra.ph/file/xxxx3.jpg' ] content = [] for url in img_urls: # 追加图片节点 content.append(['img', {'src': url}]) # 如需给图片加说明可追加下面的文字节点,不需要可以删除 # content.append(['p', {}, '这是对应图片的说明文字'])
第三步:调用create_page生成页面
把组装好的content传入方法即可,示例:
response = telegraph.create_page( title='自定义页面标题', content=content, # 下面是可选参数,不需要可以删除 author_name='显示的作者名称' ) # 打印生成的Telegraph页面地址 print('生成的页面地址:https://telegra.ph/{}'.format(response['path']))
常见注意事项
- 不要直接传入非Telegraph域名的图片链接,容易出现跨域限制导致图片无法显示,建议所有图片都先上传到Telegraph官方图床后再使用
content参数不能直接传入纯图片URL字符串,必须按上述Node格式组装成列表,否则接口会报错- Telegraph图床单文件大小限制为5MB,单张图片不要超过这个上限
内容的提问来源于stack exchange,提问作者Aziz Yusupov
相关产品推荐
相关产品推荐

