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

如何使用InstaGrapi爬取用户数据及用户名

问题分析与修正方案

你的代码存在多处逻辑错误,导致无法正确获取is_private、is_verified等用户字段:

  • API调用参数错误:User = cl.user_info_by_username(username=str)传入str类型而非具体用户名,后续cl.user_info_by_username([0])传入列表,均不符合接口参数要求。
  • 遍历逻辑混乱:cl.user_followers()返回的是{用户ID: UserShort对象}的字典结构,直接遍历即可获取用户基础信息,无需重复调用API。
  • 文件写入模式错误:使用"w"模式每次循环都会清空文件,应改为"a"追加模式,或一次性打开文件完成所有写入操作。

修正后的代码

from instagrapi import Client

cl = Client()
cl.login("your_username", "your_password")

def scrapeusers():
    target = input("请输入要爬取的目标用户名: ")
    userid = cl.user_id_from_username(target)
    amt = int(input("请输入要爬取的粉丝数量: "))
    # 获取粉丝列表,返回{user_id: UserShort}格式的字典
    scraped_followers = cl.user_followers(user_id=userid, amount=amt)
    
    # 以追加模式打开文件,指定utf-8编码避免乱码
    with open("users.txt", "a", encoding="utf-8") as outfile:
        # 直接遍历所有粉丝的UserShort对象
        for user in scraped_followers.values():
            # 提取需要的字段并格式化
            user_info = (
                f"用户名: {user.username}, "
                f"是否私密账号: {user.is_private}, "
                f"是否认证: {user.is_verified}, "
                f"昵称: {user.full_name}"
            )
            outfile.write(user_info + "\n")

scrapeusers()

关键说明

  • cl.user_followers()返回的UserShort对象本身已包含username、is_private、is_verified等基础字段,无需额外调用user_info_by_username;若需更详细的用户数据,可通过cl.user_info(user.id)获取完整用户对象。
  • 使用values()直接遍历粉丝对象,跳过不必要的用户ID键值对。
  • 若想一次性写入所有数据减少IO操作,可先将所有用户信息存入列表,最后统一写入文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:20:37