我正在使用此网址返回所有使用yolo标记的图片的计数: https://api.instagram.com/v1/tags/yolo?access_token=
无论如何还要返回图片网址及其元数据吗?我似乎只能抓住用户与访问令牌相关的图片网址。
我可以通过以下调用抓取Instagram来检索我需要的数据。如何将.window._sharedData作为json对象提取?
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://www.instagram.com/explore/tags/yolo/");
xhr.onload = function() {
if (xhr.status === 200) {
var result = xhr.responseText;
// .window._sharedData;
console.log(result);
// ('request successful ' + xhr.responseText.);
}
else {
console.log('request failed: ' + xhr.status);
}
};
xhr.send();
答案 0 :(得分:0)
要获取所有媒体和相关元数据,您需要使用 GET /tags/tag-name/media/recent
功能,如下所示:https://api.instagram.com/v1/tags/yolo/media/recent?access_token=
首先,您将获得20个列表(如果我没记错,现在无法检查)最近的媒体(图像和/或视频)然后您必须检查您最后一个媒体项目的ID 。然后,您只需创建一个新请求,MIN_TAG_ID
设置为该值。
重复,直到你拥有该标签的所有媒体。
基本上,Instagram API中返回项目列表的所有功能都将启用某种分页。您只需要逐页请求结果即可获得完整的集合。
如果您正在沙盒上测试您的应用程序,您将获得与实时应用程序不同的结果集。以下是Instagram的API文档中的解释:
作为另一个例子,让我们考虑一个返回媒体列表的端点:
/tags/{tag-name}/media/recent
。此端点返回的响应将仅包含具有给定标记的媒体,如预期的那样。但不是从任何公共Instagram用户返回媒体,它将仅返回属于您的沙盒用户的媒体,限制为每个用户的最后20个。