Pyhton3 下載Telegram 頻道數據

 注:telegram 提供了相關的API,根據要求在相關網址上申請相關需要的參數,登錄telegram就可以抓取telegram數據了,申請主要是點點點,所以這裏省略

 

這裏默認你拿到相關的參數信息,直接上代碼

from telethon import TelegramClient, utils
from telethon.tl.types import InputMessagesFilterPhotos, InputMessagesFilterDocument

api_id = 1234567
api_hash = '75757892add13892757892add136e6a775789'
client = TelegramClient('Jian', api_id, api_hash)
channel = 'https://t.me/jeannieStudioGroup'

async def main():
    # print('**********************send_message*****************************')
    # # 發送消息
    # await client.send_message('me', 'Hello to myself!')

    print('*************************messages**************************')
    messages = client.iter_messages(channel, limit=100)
    msges = '';
    async for message in messages:
        msg = str(message.date) + '[' + str(utils.get_display_name(message.sender)) + ':' + str(message.message) + ']\n'
        print(msg)
        msges = msges + msg
    with open('./telegram/messages.text', 'w') as file:
        file.write(msges)

    print('*************************photos**************************')
    photos = await client.get_messages(channel, None, filter=InputMessagesFilterPhotos)

    total = len(photos)
    index = 0
    for photo in photos:
        filename = "./telegram/" + str(photo.id) + ".jpg"
        index = index + 1
        print("downloading:", index, "/", total, " : ", filename)
        # 下載圖片
        await client.download_media(photo, filename)

    print('*************************files**************************')
    files = await client.get_messages(channel, None, filter=InputMessagesFilterDocument)

    for file in files:
        attributes = file.media.document.attributes
        # 文件
        if len(attributes) == 1:
            fileName = file.media.document.attributes[0].file_name
            print(fileName)
        # 圖片格式
        if len(attributes) == 2:
            fileName = file.media.document.attributes[1].file_name
            print(fileName)
        # 下載文件
        await client.download_media(file, "./telegram/" + fileName)


with client:
    client.loop.run_until_complete(main())

 

發佈了101 篇原創文章 · 獲贊 16 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章