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

如何通过Python Requests获取Instagram公开账号帖子?

问题解答

1. ?__a=1 端点是否仍有效?

无效。Instagram早在2020年左右就停用了这个非官方的API端点,现在访问该URL只会返回账号的网页HTML内容,这就是你收到HTML、触发JSON解码错误的原因。

2. Meta应用的access_token能否获取JSON数据?

可以,但必须配合官方API端点使用,不能直接附加到原来的网页URL上:

  • 若获取个人公开账号的帖子,需使用Instagram Basic Display API,access_token需具备user_profile和user_media权限;
  • 若获取企业/商家公开账号的帖子,需使用Instagram Graph API,access_token需对应权限(如business_management、instagram_basic)。
    注意:获取非自身授权账号的公开内容,可能需要额外申请API权限,否则仅能获取已授权账号的数据。

3. 代码调整方案

你需要完全替换请求端点,改用官方API。以下是基于Instagram Basic Display API的示例代码(假设你已获取有效access_token并完成账号授权):

import requests
import json

def scrape_instagram_data(user_id, num_posts, access_token):
    # 配置请求参数,可按需添加更多返回字段
    params = {
        'access_token': access_token,
        'fields': 'id,caption,media_url,timestamp',
        'limit': num_posts
    }
    # 官方用户媒体内容请求端点
    base_url = f"https://graph.instagram.com/{user_id}/media"
    
    response = requests.get(base_url, params=params)
    if response.status_code == 200:
        data = response.json()
        # 格式化打印返回数据
        print(json.dumps(data, indent=2))
        # 如需获取更多帖子,可通过data['paging']['next']进行分页请求
    else:
        print(f"请求失败: {response.status_code}, {response.text}")

# 使用示例(替换为实际的用户ID和access_token)
scrape_instagram_data("目标用户ID", 10, "你的有效access_token")

补充说明:

  • 用户ID获取:若为自身授权账号,可调用https://graph.instagram.com/me?fields=id&access_token=你的token获取;若为其他公开账号,需通过具备权限的搜索API或合规第三方工具查询。
  • 权限校验:确保你的Meta应用已申请并通过对应API的权限审核,否则会返回权限不足的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:42:36