【问题标题】:Get JSON from website (instagram)从网站(instagram)获取 JSON
【发布时间】: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 - 你没有那个。它也可能受到保护,不允许跨域

标签: javascript python json


【解决方案1】:

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

使用以下 GET 请求:

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

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

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

【讨论】:

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

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

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

【讨论】:

  • 我不知道这是可能的,我输入哪个网站作为重定向 url?我的意思是我不拥有任何
  • 这是一个指向Stack Overflow answer 的链接,应该会有所帮助。
  • 这是不可能的并且受到严格限制
  • Facebook API 一直是一场噩梦,如今这几乎是不可能的……让我们从他们身上刮下来吧:P
猜你喜欢
  • 2012-07-14
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 2019-03-30
  • 2019-09-27
相关资源
最近更新 更多