如何提取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
相关产品推荐
相关产品推荐

