从网站(JSON)获取JSON

Pat*_*k.H 1 javascript python json

最近,我想到了从instagram帐户及其帖子中抓取信息的想法,例如评论数量或喜欢数量。到目前为止,我发现在chrome中调试时发现,例如“网络”标签下的链接https://www.instagram.com/instagram/?__a返回包含所需信息的JSON,但实际加载的内容仍然是普通的网站html代码。

json资料

到目前为止,我在python中使用以下代码尝试过:

import urllib.request
r = urllib.request.urlopen(url)
print(r.read())
Run Code Online (Sandbox Code Playgroud)

或在javascript中:

window.onload = function () {
    res = fetch("https://www.instagram.com/instagram/?__a", {
        method: 'get'
    }).then(function (data) {
        return data.json();
    }).catch(function (error) {
        console.log("ERROR".concat(error.toString()));
    });
    console.log(res.user);
};
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当使用这些功能时,我仅获取网站代码(html),有没有办法仅获取后台加载的JSON?我知道人们会使用instagram api推荐我,但是我没有网站或公司要注册。

小智 17

2022 年更新:您无法再通过添加查询字符串 ?__a=1 来获取 JSON 输出。目前,如果您使用以下查询字符串来获取 Instagram 上的个人资料信息、视频和帖子信息,将会有所帮助:

https://www.instagram.com/instagram/?__a=1&__d=dis
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 你从哪里得到那些额外的参数 &__d=dis ?它对我有用!但你是从哪里找到它的?它意味着什么?我可以传递更多参数来限制搜索吗? (2认同)

小智 7

我遇到了一个问题,试图使API达到我想要的目的,实际上只需要JSON数据,包括特定帐户的图片的网址和标题。

使用以下GET请求:

https://www.instagram.com/account_name/?__a=1

其中account_name是我要抓取的配置文件。

它返回我执行任务所需的所有JSON。

  • 这在 2022 年不再适用 (10认同)