如何通过图书馆电视马拉松在电报中搜索频道?



目前我有一个电报客户端,可以读取给定频道中的所有消息。

from telethon import TelegramClient, connection
import socks
import asyncio
client = TelegramClient('session4', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port),timeout=66)
client.start()
kanal='???'
loop = asyncio.get_event_loop()
dp = loop.run_until_complete(client.get_entity(kanal))
posts = loop.run_until_complete(client.get_messages(dp,limit=1000))
loop.close()

为了自动搜索频道,我决定通过频道搜索来获取它们。找到一种方法

result = client(functions.contacts.SearchRequest(q='some',limit=100))

但他不断返回一个空列表。我怀疑这是否真的是这种方法?还是我应该使用其他东西?

您可以使用 get_entity((。如果您有channel_id,则可以执行以下操作。

my_channel = client.get_entity(PeerChannel(some_id))

如果您没有 id 但有名称,则可以执行此操作。

my_channel = client.get_entity('some')

您可以在此处找到更多信息

如果您想获取所有频道,请搜索,您可以从获取所有对话开始,然后检查每个聊天的标题是否与您的频道名称匹配

result = client.get_dialogs()
for chat in result:
if chat.title == 'some':
#do something

最新更新