Telegram Telethon 多关键词搜索

问题描述 投票:0回答:2

我正在使用 Python 中的 Telethon 包来搜索频道中的唯一消息。我使用以下代码从我订阅的频道中进行搜索:

for index, x in enumerate(client.iter_messages(group_name, search='New York')):
    TODO

正如您所注意到的,我正在搜索单个关键字“纽约”。我想使用逻辑运算符搜索多个关键字,例如“纽约或迈阿密或达拉斯或休斯顿”

知道怎么做吗?

python telegram telegram-bot python-telegram-bot telethon
2个回答
1
投票

当您使用参数 search= 时,您正在使用来自 API 的

messages.search
请求,该 API 执行搜索服务器端,因此您无法使用逻辑运算。

要使用逻辑运算,您可以使用 iter_messages 并获取所有消息,然后获取其 .text 并在其中进行搜索。


0
投票

您可以定义新函数来“合并”多个单词(如果有),然后它会工作得很好。例如。就像这里

def search_line_update(search_hashtag, search_serie_number):
    search_line = ( str(search_hashtag) + str(search_serie_number) )
    return search_line

# Search for particular episod and download it
def downloader():
    client.start()
    serie_number_to_update=0
    for message in client.iter_messages(search_channel, search=search_line_update(search_hashtag, search_serie_number)):
        print(message.id, message.text, '\n\n###\n')
© www.soinside.com 2019 - 2024. All rights reserved.