从网站(instagram)获取 JSON

Posted

技术标签:

【中文标题】从网站(instagram)获取 JSON【英文标题】:Get JSON from website (instagram) 【发布时间】:2018-02-07 21:53:29 【问题描述】:

我最近有了从 instagram 帐户及其帖子中抓取信息的想法,例如 cmets 的数量或喜欢的数量。到目前为止,我在 chrome 中调试时发现,例如网络选项卡下的链接 https://www.instagram.com/instagram/?__a 返回带有所需信息的 JSON,但实际加载的仍然是正常的网站 html代码。

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

import urllib.request
r = urllib.request.urlopen(url)
print(r.read())

或在 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);
;

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

【问题讨论】:

url 也有 query_hash - 你没有那个。它也可能受到保护,不允许跨域 【参考方案1】:

我在尝试让 API 执行我想要的操作时遇到了问题,实际上只需要 JSON 数据,包括特定帐户的图像的 URL 和标题。

使用以下 GET 请求:

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

其中 account_name 是我正在抓取的个人资料。

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

【讨论】:

GET URL 末尾的“=1”似乎很关键。正如 OP 所说,没有它,它只会返回 HTML。有了它,你只得到 JSON。 如何从这个 url 获取更多缩略图资源?谢谢 你如何使用这种方法进行分页? 这只是节省了我的一天 :D 你是怎么想出来的?!?! 查看***.com/a/49341049/1874449 以获取给定 user_id 的帖子分页。它使用了一个独特的query_hash,由 instagram 网站在帖子中提供。【参考方案2】:

试图让 Json 在后台加载对于一个简单的问题来说工作量太大。

您应该使用 Instagram Api。把你的名字写成公司就行了。

【讨论】:

我不知道这是可能的,我输入哪个网站作为重定向 url?我的意思是我不拥有任何 这是一个指向Stack Overflow answer 的链接,应该会有所帮助。 这是不可能的并且受到严格限制 Facebook API 一直是一场噩梦,如今这几乎是不可能的……让我们从他们身上刮下来吧:P

以上是关于从网站(instagram)获取 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用新的 Instagram Graph API 获取帐户最新图像的凭据?

如何从我的网站中删除 Instagram 权限?

获取Instagram的权限public_content

Instagram:从网页分享照片

如何从 instagram messenger webhook 获取 instagram 用户名

使用 python (Safari) 从网站获取 cookie