如何在没有 Instagram API 的情况下从 Instagram 获取公共用户的所有帖子

Van*_*ano 5 javascript instagram instagram-api

我试图从 Instagram 上的公共用户帐户获取帖子,我尝试了几乎所有可能的方法,但它们都返回 403 错误(访问被拒绝)。

  1. https://www.instagram.com/graphql/query/?query_hash=ded47faa9a1aaded10161a2ff32abb6b&variables={"tag_name":"{user-name}","first":25,"after":""}

  2. https://www.instagram.com/{用户名}/?__a=1

  3. https://www.instagram.com/{用户名}/media

$.ajax({
    url: URL,
    type: "GET",
    success: function(data) {
        console.log('Success!' ,data);
    },
    error: function (response) {
        console.log('ERROR!', response);
    }
});
Run Code Online (Sandbox Code Playgroud)

以上是我试图获取数据的链接。正如我所读到的 Instagram 正在更改他们的协议,是否还有其他方法可以在不使用 Instagram API 和不使用后端代码的情况下从任何公共用户获取帖子列表?

谢谢你

Leg*_*ary 6

你的第二个解决方案应该有效。尝试访问这个网址:

https://www.instagram.com/{username}/?__a=1
Run Code Online (Sandbox Code Playgroud)

它包含用户页面上提供的所有信息,包括最新的 12 篇帖子,大小各异。作为旁注,它不包含关注者或关注列表

我制作了一个使用此方法的 jquery 插件:

https://github.com/kasperlegarth/instastory.js
Run Code Online (Sandbox Code Playgroud)


Gon*_*heu -1

您收到 403 是因为您没有有效的会话。Web 应用程序会话存储为 Cookie(当您浏览 instagram.com 时,会有一个 sessionid cookie)。

您需要在请求的标头中包含会话 cookie

获取有效请求的所有标头的一个简单方法是转到开发人员工具的网络部分并复制请求标头或其他格式。

另一种方法是使用GreasemonkeyTampermonkey脚本。将直接从浏览器并使用当前会话执行。