@Tenebrius

Как интерпретировать ответ messages.search Telegram API?

Задача - получить тексты сообщений канала в Телеграме.

Использую готовую библиотеку под питон - https://github.com/LonamiWebs/Telethon
Конкретно использую метод для поиска сообщений - telethon.readthedocs.io/en/latest/extra/examples/w...

Код поиска сообщений
from telethon.tl.functions.messages import SearchRequest
from telethon.tl.types import InputMessagesFilterEmpty

filter = InputMessagesFilterEmpty()
result = client(SearchRequest(
    peer=client.get_input_entity("channel_name"),      # On which chat/conversation
    q='me',      # What to search for // link to "t.me/"
    filter=filter,  # Filter to use (maybe filter for media)
    min_date=None,  # Minimum date
    max_date=None,  # Maximum date
    offset_id=0,    # ID of the message to use as offset
    add_offset=0,   # Additional offset
    limit=10,       # How many results
    max_id=0,       # Maximum message ID
    min_id=0,       # Minimum message ID
    from_id=None    # Who must have sent the message (peer)
))


В ответ даже что-то приходит, но

print(result.stringify()) - возвращает ошибку:

Traceback (most recent call last):
  File "telegram.py", line 55, in <module>
    print(result)
  File "D:\Progs\Puthon3\lib\encodings\cp1251.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 1011-1013: character maps to <undefined>


Пытался выводить result через dir(), тоже ничего похожего на текст не нашел.

pprint(result) выводит
telethon.tl.types.messages.ChannelMessages object at 0x05E287F0


В питоне совсем не разбираюсь. Как получить то сообщения хоть в каком-то текстовом формате? Более желательно в JSON.
  • Вопрос задан
  • 605 просмотров
Пригласить эксперта
Ответы на вопрос 1
@spikejke
Попробуйте:
print(result.encode("utf-8"))
или так:
# Откроет файл var.txt, затем запишет в него переменную result.
with open("var.txt", "w", encoding="utf-8") as f:
    f.write(result)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы