从网站(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 获取帐户最新图像的凭据?