我使用telethon库将传入的消息保存到数据库中,但我无法以任何方式解码到媒体文件的链接。
def scraper_new_message(message):
print(message[0].media.photo)
print(message[0].media.photo.file_reference.decode('utf-16'))@client.on(events.NewMessage(chats=LIST_CHANNELS))
async def new_message_handler(event):
chat = await event.get_input_chat()
msg = await client.get_messages(chat.channel_id)
scraper_new_message(message=msg)第一print Photo(id=5109693790456752759, access_hash=5594147865086736904, file_reference=b'\x04E\xa1\x8d\x85\x00\x00\x02\xb1cn\x8f\xe0\x0b\xf9\xceW\xae\xabFZ>\xeb\x07\xddj\x87\x8e*', date=datetime.datetime(2022, 10, 29, 11, 12, 14, tzinfo=datetime.timezone.utc), sizes=[PhotoStrippedSize(type='i', bytes=b'\x01("\xcf^\xa2\xafA\x11t\xca\x9eG\x18\xaak\x1f=j\xec\x01\x9a#\xb1\xf6\x90\x7f:\x99;"\xc7\x98\xdfn\x08\x07\x07\xa8\xa6\x05\xd8\xdd0j\xc8\'\x00\xe7\'\xe9Uer%l\xe7\xad(\xca\xe5n>\x8aM\xc0\xf7\xa2\xacv)\x86\xc7N\xb5b\x10\x1a Y\xb0I\xe3\xde\xaaf\xacD\x11\xe0\xf9\xcf|\x8a\x99\x10\xc9a\xc1lo\xdaG\xebL\x99\xbfxE5\x139.q\xc7\x14\xd9\x0e\\\xd2[\x8e"\xe4QQ\xe7\xde\x8a\xa2\xeeC\x9e(\x8d\xc8P3\xfa\xd1E\x06L\x90?\xf9\xc9\xa4<\x92\x7f\xad\x14P=\x83\x14QE1\x9f'), PhotoSize(type='m', w=272, h=320, size=31146), PhotoSizeProgressive(type='x', w=480, h=565, sizes=[4205, 11107, 19643, 32085, 48928])], dc_id=1, has_stickers=False, video_sizes=[])
当我试图解码时,我得到:
print(message[0].media.photo.file_reference.decode('utf-16'))
UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x2a in position 28: truncated data发布于 2022-11-11 18:30:31
您不能简单地解码并获取原始文件。您必须使用下载api来下载和存储文件。参考文献:https://docs.telethon.dev/en/stable/quick-references/client-reference.html?highlight=download_media#downloads
https://stackoverflow.com/questions/74406616
复制相似问题