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

批量获取Telegram用户头像并按姓名+手机号分类存储需求咨询

批量获取Telegram用户头像并分类存储的实现步骤

1. 获取Telegram开发者凭证

  • 登录Telegram官方开发者平台,创建新应用,记录生成的API_ID和API_HASH(这两个是调用Telegram API的核心凭证)。

2. 安装依赖工具

  • 安装Python(确保勾选“Add Python to PATH”选项,方便终端调用)。
  • 打开终端/命令提示符,执行pip install telethon,安装用于操作Telegram API的第三方库。

3. 整理用户名单

  • 将用户姓名和手机号整理为CSV格式文件(命名为users.csv),示例格式如下:
    姓名,手机号
    张三,+8613800138000
    李四,+8613900139000
    
    注意:手机号必须带国际区号(如中国用户前缀为+86),否则无法匹配到对应的Telegram用户。

4. 编写执行脚本

  • 创建get_avatars.py文件,复制以下代码并替换占位符为你的实际信息:
    from telethon import TelegramClient
    import csv
    import os
    import asyncio
    
    # 替换为你的API凭证和Telegram绑定手机号
    API_ID = 123456  # 替换成你的数字ID
    API_HASH = 'your_api_hash_here'
    PHONE_NUMBER = '+8613xxxxxxxxx'
    
    async def fetch_avatar(phone, target_folder):
        try:
            # 通过手机号定位Telegram用户
            user = await client.get_entity(phone)
            # 下载头像到指定文件夹
            avatar_file = await client.download_profile_photo(user.id, file=target_folder)
            if avatar_file:
                print(f"✅ 已保存 {target_folder} 的头像")
            else:
                print(f"ℹ️ {target_folder} 未设置Telegram头像")
        except Exception as e:
            print(f"❌ 处理 {target_folder} 失败: {str(e)}")
    
    async def main():
        global client
        client = TelegramClient('telegram_session', API_ID, API_HASH)
        await client.start(PHONE_NUMBER)
    
        # 读取用户列表CSV文件
        with open('users.csv', 'r', encoding='utf-8') as csv_file:
            reader = csv.DictReader(csv_file)
            for entry in reader:
                name = entry['姓名']
                phone = entry['手机号']
                # 创建以姓名+手机号命名的文件夹(去除+号避免路径问题)
                folder_name = f"{name}_{phone.replace('+', '')}"
                os.makedirs(folder_name, exist_ok=True)
                # 拉取并保存头像
                await fetch_avatar(phone, folder_name)
                # 加入1秒延迟,避免触发Telegram API限流
                await asyncio.sleep(1)
    
        await client.disconnect()
    
    if __name__ == '__main__':
        asyncio.run(main())
    

5. 运行脚本

  • 将users.csv和get_avatars.py放在同一目录下。
  • 打开终端/命令提示符,切换到该目录,执行python get_avatars.py。
  • 首次运行需输入Telegram发送到你账号的验证码,验证通过后脚本将自动批量处理所有用户。

关键注意事项

  • 合规性:必须确保获取用户头像的行为符合Telegram服务条款及当地隐私法规,不得未经用户授权滥用数据。
  • API限流:Telegram对API请求频率有严格限制,脚本中已加入1秒延迟,若仍出现限流报错,可适当延长延迟时间(如改为await asyncio.sleep(2))。
  • 异常处理:脚本会自动跳过无头像用户,并输出错误信息,便于排查手机号无效、用户未注册Telegram等问题。

内容的提问来源于stack exchange,提问作者Ali Ramesh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:27:40