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

如何提取Instagram用户关注数及简介?API与Instaloader使用遇阻求助

提取Instagram用户基本信息的可行方案

一、最简单的方法:公开账户静态页面解析(无需登录)

对于公开Instagram账户,直接请求用户主页的HTML源码,就能从中提取到嵌入的JSON数据块,里面包含完整的用户基本信息(用户名、简介、粉丝数、发帖数等)。Instagram会在页面中放置window._sharedData脚本标签,这是核心数据来源。

示例Python代码:

import requests
import json
from bs4 import BeautifulSoup

def get_public_user_info(username):
    url = f"https://www.instagram.com/{username}/"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36"
    }
    resp = requests.get(url, headers=headers)
    if resp.status_code != 200:
        return None
    
    soup = BeautifulSoup(resp.text, "html.parser")
    script_tag = soup.find("script", text=lambda t: t and "window._sharedData" in t)
    if not script_tag:
        return None
    
    json_raw = script_tag.text.split("window._sharedData = ")[1].rstrip(";")
    data = json.loads(json_raw)
    user_data = data["entry_data"]["ProfilePage"][0]["graphql"]["user"]
    
    return {
        "用户名": user_data["username"],
        "全名": user_data["full_name"],
        "简介": user_data["biography"],
        "粉丝数": user_data["edge_followed_by"]["count"],
        "关注数": user_data["edge_follow"]["count"],
        "发帖数": user_data["edge_owner_to_timeline_media"]["count"],
        "是否私密": user_data["is_private"]
    }

# 使用示例
print(get_public_user_info("example_username"))

注意:仅适用于公开账户;频繁请求易触发IP封禁,建议添加请求间隔、使用代理;Instagram可能随时调整页面结构,需定期维护解析逻辑。

二、在线信息工具的实现逻辑

网上的Instagram用户信息查询工具,核心逻辑和上述方法一致,只是做了工程化优化:

  • 代理池轮询:用大量代理IP分散请求,避免单IP被限制
  • 动态渲染:用Selenium/Playwright模拟真实浏览器加载,绕过静态请求拦截
  • 缓存机制:对已查询的用户数据做缓存,减少重复请求
  • 错误重试:针对HTTP错误、页面结构变化自动重试并适配

三、修复Instaloader的登录问题

你遇到的重定向登录错误,多是Instagram反爬机制检测到非浏览器请求,或账号存在风险导致,可尝试以下解决办法:

  • 指定真实浏览器UA:初始化Instaloader时模拟合法用户代理
import instaloader

L = instaloader.Instaloader(user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
  • 保存会话文件:登录一次后保存会话,后续直接加载避免重复登录触发验证
# 登录后保存
L.save_session_to_file("ig_session")
# 下次启动加载
L.load_session_from_file("your_username", "ig_session")
  • 降低操作频率:添加请求间隔,避免短时间批量爬取
  • 检查账号状态:确保账号未开启两步验证,或登录时手动输入验证码(Instaloader支持手动输入)

四、稳定数据源的替代方案

如果需要长期稳定的数据源,可考虑:

  • Instagram Graph API:面向企业/开发者账户,需创建Facebook开发者应用并通过审核,可获取授权用户的公开信息
  • 合规第三方服务商:部分付费服务商提供合法的Instagram数据接口,适合商业需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:18:24