You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何爬取Telegram群成员的ID、用户名及个人简介(Bio)

Telegram群成员信息爬取问题:无法正确获取个人简介(Bio)

问题描述

  • 刚接触Python基础,已实现爬取Telegram用户的用户名、用户ID
  • 尝试使用Telethon、Pyrogram框架爬取群成员的个人简介(Bio)时失败
  • 尝试相关方法后,输出的用户ID、用户名正常,但个人简介位置显示function get_user_bio at 0x7f xxxxxxxxx
  • 需要一个能同时获取用户ID、用户名及个人简介的可行方案

尝试的错误代码

from telethon.tl.functions.users
import GetFullUserRequest

async def get_user_bio(client, user):
    try:
    full_user = await client(GetFullUserRequest(user))
return full_user.full_user.about
except ChatAdminRequiredError:

# Get the user's bio
bio = full_user.full_user.about

问题分析

  1. 语法错误:代码存在缩进错误、import语句换行错误、except块为空且未捕获异常、变量作用域问题(full_user在try块外无法访问)
  2. 函数调用错误:直接将get_user_bio函数对象赋值给bio,而非调用函数(缺少()),导致输出函数内存地址

解决方案(Telethon完整实现)

以下是修正后的完整代码,可同时获取群成员的ID、用户名及个人简介:

from telethon import TelegramClient
from telethon.tl.functions.users import GetFullUserRequest
from telethon.errors import ChatAdminRequiredError, UserNotMutualContactError

# 替换为你的API信息
API_ID = 123456
API_HASH = 'your_api_hash_here'
SESSION_NAME = 'my_session'
GROUP_LINK = 'https://t.me/your_group_link'  # 或群ID

async def main():
    async with TelegramClient(SESSION_NAME, API_ID, API_HASH) as client:
        # 获取群对象
        group = await client.get_entity(GROUP_LINK)
        # 遍历群成员
        async for user in client.iter_participants(group):
            user_id = user.id
            username = user.username or "无用户名"
            bio = "无法获取简介"
            
            try:
                # 获取用户完整信息(包括Bio)
                full_user = await client(GetFullUserRequest(user.id))
                bio = full_user.full_user.about or "无个人简介"
            except ChatAdminRequiredError:
                bio = "需要管理员权限才能获取简介"
            except UserNotMutualContactError:
                bio = "非双向联系人,无法获取简介"
            except Exception as e:
                bio = f"获取简介失败: {str(e)}"
            
            # 输出结果
            print(f"用户ID: {user_id}, 用户名: {username}, 个人简介: {bio}")

if __name__ == '__main__':
    import asyncio
    asyncio.run(main())

关键说明

  • 确保已安装Telethon:pip install telethon
  • 需要提前在Telegram官网申请API ID和API_HASH
  • 部分隐私设置较高的用户或私有群组,可能需要管理员权限才能获取Bio,需做好异常处理
  • 异步函数必须在异步事件循环中运行(通过asyncio.run()启动)

内容的提问来源于stack exchange,提问作者sweet xento

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:10:22