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

如何检测Instagram用户是否直播?现有代码始终返回未直播问题排查

Instagram直播检测代码始终显示“用户未直播”的问题解决

你的代码不管目标用户是否直播都返回“未直播”,核心原因有两个:

  1. 静态请求无法获取动态内容:Instagram个人主页的直播状态是通过JavaScript异步加载的,requests直接获取的是初始静态HTML,根本不包含直播相关的动态渲染元素。
  2. 动态类名失效:你依赖的hzyi9是Instagram动态生成的类名,平台会频繁更新这类标识,固定写死的类名很快就会失效。

可行解决方案

方案1:使用Selenium模拟浏览器加载动态页面

Selenium会模拟真实浏览器行为,加载页面所有动态内容,能正确获取直播状态:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

username = "目标用户名"
url = f"https://www.instagram.com/{username}/"

# 初始化Chrome浏览器(需提前安装对应版本的ChromeDriver)
driver = webdriver.Chrome()
driver.get(url)

try:
    # 等待10秒,查找页面中包含"LIVE"文本的元素(直播状态的标识)
    WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, "//*[contains(text(), 'LIVE')]"))
    )
    print(f"{username} 正在直播!")
except:
    print(f"{username} 未直播。")
finally:
    # 关闭浏览器
    driver.quit()

方案2:使用Instagram官方Graph API(推荐)

通过官方API获取用户媒体数据,能合法且稳定地检测直播状态,需要先申请Instagram开发者账号并获取访问令牌:

  • 调用/{user-id}/media端点,返回的媒体数据中,直播内容的media_type字段会标记为LIVE。

注意事项

  • 使用Selenium时,需确保浏览器驱动版本与浏览器版本匹配,频繁请求可能触发Instagram的人机验证,建议添加适当等待或登录后操作。
  • 官方API是最稳定的方案,适合长期或批量检测场景,避免反爬限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:33:15