我正在使用 Python 中的 Telethon 包来搜索频道中的唯一消息。我使用以下代码从我订阅的频道中进行搜索:
for index, x in enumerate(client.iter_messages(group_name, search='New York')): TODO
正如您所注意到的,我正在搜索单个关键字“纽约”。我想使用逻辑运算符搜索多个关键字,例如“纽约或迈阿密或达拉斯或休斯顿”
知道怎么做吗?
当您使用参数 search= 时,您正在使用来自 API 的
messages.search
请求,该 API 执行搜索服务器端,因此您无法使用逻辑运算。
要使用逻辑运算,您可以使用 iter_messages 并获取所有消息,然后获取其 .text 并在其中进行搜索。
您可以定义新函数来“合并”多个单词(如果有),然后它会工作得很好。例如。就像这里:
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')