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

如何使用Python传入Instagram用户名获取对应账号粉丝数并解决报错

报错原因
  • scrape_data函数中查找meta标签的property属性多写了空格,og : description应为og:description,导致BeautifulSoup找不到对应标签返回None,调用attrs属性直接触发报错
  • Instagram现在对未登录的公共请求做了限制,直接用requests请求个人主页拿不到完整的元数据,就算改对空格也大概率还是返回None
  • 主逻辑中存在变量名错误,你将爬取结果存入了follower_data变量,但实际取值时错写为follower["Followers"],follower是用户名字符串,不存在对应的键值
优化方案

你已经引入了instaloader库,完全可以直接用库自带的接口获取粉丝数,不需要额外写爬虫逻辑,稳定性更高,修复后的代码如下:

import instaloader

L = instaloader.Instaloader()

def get_followers():
    # 登录你的Instagram账号
    username = input("输入你的账号用户名: ")
    password = input("输入你的账号密码: ")
    L.login(username, password)
    # 获取你的账号元数据
    profile = instaloader.Profile.from_username(L.context, username)
    follow_list = []
    # 遍历获取所有粉丝的用户名
    for followee in profile.get_followers():
        follow_list.append(followee.username)
    return follow_list, username

def get_user_follower_count(target_username):
    # 直接用instaloader接口获取目标账号的粉丝数
    target_profile = instaloader.Profile.from_username(L.context, target_username)
    return target_profile.followers

if __name__ == "__main__":
    list_of_followers, login_username = get_followers()
    result = {}
    for follower in list_of_followers:
        # 跳过自己的账号避免重复请求
        if follower == login_username:
            continue
        follower_count = get_user_follower_count(follower)
        result[follower] = follower_count
    # 按粉丝数倒序排序,如果要升序删除reverse=True参数即可
    result = dict(sorted(result.items(), key=lambda item: item[1], reverse=True))
    n_input = int(input("你想要查看前多少名粉丝的排名?: "))
    # 输出排名和对应的粉丝数
    for idx, (username, count) in enumerate(list(result.items())[:n_input], 1):
        print(f"第{idx}名:{username},粉丝数:{count}")
注意事项
  • 首次登录可能会触发Instagram的二次验证,按照命令行提示输入验证码即可
  • 不要短时间内请求大量账号数据,避免被Instagram限制账号权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:45:03