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

使用instagramy获取Ins数据时,存在的用户却被提示未找到

问题描述

尝试使用instagramy库从Instagram获取IPL球队账号数据,用户名都是直接从Instagram复制的,但反复收到「用户不存在」的错误,同时伴随HTTP重定向循环报错。

代码示例

from instagramy.plugins.analysis import analyze_users_popularity
import pandas as pd 

session_id = "58094758320%3AcPGOQQFP3YK2sq%3A0%3AAYeC7jQGmpaEYf2il0Evg60SXDeJarTsjUjc5TG7RQ"
# Instagram user_id of ipl teams
teams = ["chennaiipl", "mumbaiindians",
        "royalchallengersbangalore", "kkriders",
        "delhicapitals", "sunrisershyd",
        "kxipofficial"]
 
data = analyze_users_popularity(teams ,session_id)

df= pd.DataFrame(data)
df

报错信息

HTTPError: The HTTP server returned a redirect error that would lead to an infinite loop.
The last 30x error message was:
Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "C:\Users\siddh\OneDrive\Desktop\instagram scrapper.py", line 17, in <module>
    data = analyze_users_popularity(teams ,session_id)

  File "C:\Users\siddh\anaconda3\lib\site-packages\instagramy\plugins\analysis.py", line 16, in analyze_users_popularity
    user = InstagramUser(username, sessionid)

  File "C:\Users\siddh\anaconda3\lib\site-packages\instagramy\InstagramUser.py", line 61, in __init__
    data = self.get_json()

  File "C:\Users\siddh\anaconda3\lib\site-packages\instagramy\InstagramUser.py", line 83, in get_json
    raise UsernameNotFound(self.url.split("/")[-2])

UsernameNotFound: InstagramUser('chennaiipl') not Found

解决方案

1. 确认用户名有效性

  • 部分IPL球队的Instagram账号已更名,比如列表里的kxipofficial已改为punjabkingsipl,使用旧用户名会直接触发「不存在」错误。
  • 手动逐个在Instagram网页端搜索用户名,确认账号是否存在、是否更名。

2. 更新Session ID

  • Instagram的sessionid会定期失效,当前使用的sessionid大概率已过期,重新获取步骤:
    1. 登录Instagram网页版,按F12打开开发者工具
    2. 切换到「Application」(Chrome)或「存储」(Firefox)标签,找到「Cookies」下的sessionid
    3. 复制最新的sessionid替换代码中的旧值

3. 升级instagramy库

  • 旧版本库可能不兼容Instagram最新的API重定向逻辑,执行命令升级:
    pip install --upgrade instagramy
    

4. 降低请求频率避免反爬限制

  • Instagram有严格的反爬机制,一次性请求多个账号易触发限制,建议分批请求并添加延时:
    from instagramy.plugins.analysis import analyze_users_popularity
    import pandas as pd
    import time
    
    session_id = "你的最新sessionid"
    # 更新后的有效用户名列表
    teams = ["chennaiipl", "mumbaiindians", "royalchallengersbangalore", "kkriders", "delhicapitals", "sunrisershyd", "punjabkingsipl"]
    data = []
    
    for team in teams:
        try:
            # 单次请求一个用户
            user_data = analyze_users_popularity([team], session_id)
            data.extend(user_data)
            time.sleep(2)  # 每次请求后暂停2秒,避免触发反爬
        except Exception as e:
            print(f"处理账号 {team} 时出错: {str(e)}")
    
    df = pd.DataFrame(data)
    print(df)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:10:40