尝试使用Telethon iter_messages进行全局搜索没有结果



我正在使用Telethon python包用于Telegram API。

使用以下代码,我可以根据关键字搜索收集特定用户的消息:

import config
from telethon import TelegramClient
from telethon.errors import SessionPasswordNeededError
from telethon.sync import TelegramClient
from telethon import functions, types
import datetime
import asyncio

api_id = config.telegram_crawler_secrets_and_settings['TELEGRAM_API_ID']
api_hash = config.telegram_crawler_secrets_and_settings['TELEGRAM_API_HASH']
phone = config.telegram_crawler_secrets_and_settings['TELEGRAM_API_PHONE_NUMBER']

async def main():
async with TelegramClient('anon', api_id, api_hash) as client:
async for message in client.iter_messages(5067150042, limit=10, search='hello', wait_time=0):
print(message.stringify())
await asyncio.sleep(0.2)

asyncio.run(main())

根据这篇文章,应该可以用None替换实体(用户ID)并跨公共通道执行全局搜索,但是它似乎在我的尝试中不起作用(见下文)。

async def main():
async with TelegramClient('anon', api_id, api_hash) as client:
async for message in client.iter_messages(None, limit=10, search='hello', wait_time=0):
print(message.stringify())
await asyncio.sleep(0.2)

asyncio.run(main())

感谢收到任何建议!

我刚刚尝试了这个,这对我有效:

async def main():
async with TelegramClient('session', api_id, api_hash) as client:
async for message in client.iter_messages(None, limit=10, search='hello', wait_time=0):
print(message.stringify())
await asyncio.sleep(0.2)

asyncio.run(main())

如果它仍然不能为你工作,请提供你得到的错误信息。

最新更新