电报获取聊天信息/帖子-python Telethon
我正在使用Telethon和Python 3.6xx 能够从群组中检索信息,没问题,但当涉及到频道时,我就卡住了电报获取聊天信息/帖子-python Telethon,python,telethon,Python,Telethon,我正在使用Telethon和Python 3.6xx 能够从群组中检索信息,没问题,但当涉及到频道时,我就卡住了 dialogs = client(get_dialogs) for chat in dialogs.chats: getmessage = client.get_messages(chat.id, limit=400) for message in getmessage: print(message.message) 我搜索了telethon文档,但大多
dialogs = client(get_dialogs)
for chat in dialogs.chats:
getmessage = client.get_messages(chat.id, limit=400)
for message in getmessage:
print(message.message)
我搜索了telethon文档,但大多数答案都是对旧的get\u message\u history
的响应
当我尝试使用以下chat.id=1097988869
(news.bitcoin.com)时,我发现以下错误(对于组,chat.id
工作正常):
PeerRidinValiderRor:使用了无效的对等方。确保传递正确的对等类型
更新:
在新版本的Telethon中,@Lonami answer是最好的,请使用它
############################################################
您可以使用此代码获取消息:
client = TelegramClient('session_name',
api_id,
api_hash,
update_workers=1,
spawn_read_thread=False)
assert client.connect()
if not client.is_user_authorized():
client.send_code_request(phone_number)
me = client.sign_in(phone_number, input('Enter code: '))
channel_username='tehrandb' # your channel
channel_entity=client.get_entity(channel_username)
posts = client(GetHistoryRequest(
peer=channel_entity,
limit=100,
offset_date=None,
offset_id=0,
max_id=0,
min_id=0,
add_offset=0,
hash=0))
# messages stored in `posts.messages`
公认的答案是好的,但Telethon的最新版本让您更容易实现同样的目标。这将迭代
聊天
中的所有消息(在本例中,我们使用telethon.sync
避免键入async
):
例如,变量应该是显而易见的(注意这些API值不起作用,您需要自己的):
文档中提供了更多使用async
的示例。对我有用
api_哈希来自,正在api开发中
from telethon import TelegramClient, events, sync
api_id = 'your api_id'
api_hash = 'your api_hash'
client = TelegramClient('session_name', api_id, api_hash)
client.start()
channel_username = 'username'# your channel
for message in client.get_messages(channel_username, limit=10):
print(message.message)
你想从频道中获取消息吗?请注意,在Telethon的最新版本中,
client.get_messages(chat,limit=400)
应该可以正常工作。谢谢阿里!对于像我这样的初学者,您可以通过在帖子中添加消息的来访问频道消息的文本。消息:打印(message.message)
您忘记了telethon.tl.functions.messages导入GetHistoryRequest其他人的注意事项,在更新版本的telethon中,库是异步的,此代码将失败。必须正确等待一切或导入telethon.sync。这适用于telethon==1.10.8
,而接受的答案会引发异常,因为posts
不再具有属性messages
@EliasStrehleposts
仍应具有messages
,但可能只是错过了等待电话。有没有快捷方式转发聊天室的所有信息?我正在尝试转发聊天室中的所有消息,从最早的开始转发到newest@Lonami如何从频道或组获取消息。上面写着ValueError:没有用户的用户名是“xxx”
name = 'anon'
api_id = 123
api_hash = 'abcdefgh'
chat = 'me'
from telethon import TelegramClient, events, sync
api_id = 'your api_id'
api_hash = 'your api_hash'
client = TelegramClient('session_name', api_id, api_hash)
client.start()
channel_username = 'username'# your channel
for message in client.get_messages(channel_username, limit=10):
print(message.message)