当前位置: 代码迷 >> python >> 有没有办法知道使用te??lethon的电报发布照片的网址?
  详细解决方案

有没有办法知道使用te??lethon的电报发布照片的网址?

热度:90   发布时间:2023-06-27 21:51:34.0

我使用python和telethon来获取消息..我可以下载消息照片,但我不想存储和下载。 我想知道照片的网址,以便以后随时使用它访问它。 有没有办法做到这一点?

电报API不会为您提供直接到帖子媒体文件的URL。 但是,作为一种解决方法,请看一下几个月前Telegram在其网站上添加的新功能:

您只需输入以下格式的网址即可查看网络中公共频道的帖子: : “ channel-username” /“ post-No”

(例如 )

这样,您可以解析DOM并找到每个媒体文件的直接URL。

注意:对于每种类型的文件,您可能需要一种单独的方法来提取文件的URL。

@tashakori 答案的扩展

对于没有设置用户名的频道(我见过几个),它是https://t.me/c/channel_id/message_id

例如。

async def main():
    # TODO setup client etc.
    # this channel id was obtained from using something similar to https://stackoverflow.com/a/62849271/8608146
    channel = await client.get_entity(-1001006503122)
    async for message in client.iter_messages(channel, reverse=True):
        # channel.id and the above -100.. id are not same
        # this channel.id looks like 1006503122
        print("message URL", f"https://t.me/c/{channel.id}/{message.id}")

另请注意:当然,只有加入频道的用户才能访问这些链接。

还有message.chat_id属性返回 -100 ...

  相关解决方案