3 回答
TA贡献2039条经验 获得超7个赞
问题是 Instagram 在上周左右限制了他们未登录的(访客)访问(基于 IP 地址)。
在对其服务器进行大量查询后,他们将开始显示“请登录”页面 ()。
解决此问题的唯一方法是让 Instagram 上希望使用此流程的每个用户创建一个 API 密钥(这是不现实的,因为主要是我们不了解他们)。否则,我们将需要在向 Instagram 发出请求时使用代理,这样它就不会看到您从同一 IP 地址多次访问他们的服务器。
在未访问 Instagram 服务器的全新 IP 地址上使用代码工作正常。但是,经过多次查询(一旦 IP 被列入黑名单),我得到的是相同的登录页面,而不是 Instagram 帐户。
根据 Instagram 的 API 文档,他们希望您为希望提取照片的每个用户拥有一个 API 密钥(将 API 密钥保持在沙盒模式)。这对我来说又是不现实的。我们“可以”在 Instagram 上提交我们的应用程序以供审核(理论上“可以”让您从同一 API 密钥中为其他用户提取照片),但我非常怀疑他们是否会批准从其服务器上提取图像和元数据的应用程序。
TA贡献1829条经验 获得超13个赞
使用代理,最好的住宅代理,似乎 instagram 开始积极禁止 IP,并且他们正在对其进行硬速率限制。
任何被禁止的 ip 都被路由到 LoginAndSignupPage,因此您无法提取信息。由于它基于 IP,除非他们的 IP 也被阻止,否则它可能不会发生在每个人身上。
TA贡献2011条经验 获得超2个赞
这个对我有用:
var name = "you_profile";
$.get("https://www.instagram.com/" + name + "/?__a=1", function(json) {
if (json) {
edges = json.graphql.user.edge_owner_to_timeline_media.edges;
$.each(edges, function(n, edge) {
var active = n == 0 ? 'active' : '';
$('#instagram').append(
'<div class="carousel-item col-md-3 ' + active + ' ">' + '<a href="https://instagr.am/p/' + edge.node.shortcode +'"><img src="' + edge.node.thumbnail_src +'" alt=""></a>' + '</div>'
);
});
}
});
- 3 回答
- 0 关注
- 171 浏览
添加回答
举报