我一直在使用Instagram的未记录的API https://www.instagram.com/<user>/?__a=1
来获取公共用户Feed。
我也可以通过max_id
查询参数获取多个页面,如下所示:https://www.instagram.com/<user>/?__a=1&max_id=<end_cursor>
end_cursor = json_response.graphql.user.edge_owner_to_timeline_media.page_info.end_cursor
(是的,&#34; has_next_page&#34;是真的)
他们最近改变了他们的JSON格式,我认为他们可能已经破坏了其他功能。
&#34; end_cursor&#34;仍然存在,但当我使用它时,我只是回到相同的Instagram帖子,好像我没有使用它。
为了确保我清楚,我的问题是max_id=<end_cursor>
似乎不再适用于公共用户Feed。我仍然可以获得前12个帖子,但之后不再有。
其他人都看到了这个问题?
这里是我所说的JSFiddle示例: https://jsfiddle.net/LLsg91ja/33/
答案 0 :(得分:14)
04-14-2018 - 没有更长时间的工作 - INSTAGRAM弃用了&#39;?__ a = 1&#39; &安培; &#39;?query_id = 17888483320059182&#39; - 这不再有效!
好的,请看一下媒体分页:
https://instagram.com/graphql/query/?query_id=17888483320059182&id=<user_id>&first=12&after=<end_cursor>
返回:
[&#39;数据&#39;] [&#39;用户&#39;] [&#39; edge_owner_to_timeline_media&#39;] [&#39; page_info&#39;] [&#39; end_cursor&# 39]
媒体:
[&#39;数据&#39;] [&#39;用户&#39;] [&#39; edge_owner_to_timeline_media&#39;] [&#39; edge&#39;]
&#39; query_id&#39;现在是静态的,所以只需使用:17888483320059182
&#39; ID&#39;是&#34; instagram用户ID&#34;所以你必须使用?__a=1
来抓住[&#39; graphql&#39;] [&#39;用户&#39;] [&#39; id&#39;]
&#39;第一&#39;是你想要的照片数量。只需使用12来保持媒体返回相同。
&#39;后&#39;是新的&#39; max_id&#39;使用[&#39;数据&#39;] [&#39;用户&#39;] [&#39; edge_owner_to_timeline_media&#39;] [&#39; page_info&#39;] [&#39; end_cursor&#39; ]
我会测试更多并稍后回复。
稍后回复:
相信&#39;分页&#39;使用?__a=1
已被弃用。如果是真的那么没有答案可以解决使用?__a=1
进行Instagram分页的操作直接问题。
但是,这个答案中提供的代码将提供Instagram媒体的分页,它提供了op正在寻求的结果。
答案包含&#39; instagram graphql api&#39;这是当前的api(而不是json ?__a=1
hack)所以这个答案现在应该提供一些稳定性。
在我的实际网站上使用:
在Instagram媒体请求之前抓取id=<instagram_user_id>
:
profile = https://www.instagram.com/<instagram_username>/?__a=1
media = https://instagram.com/graphql/query/?query_id=17888483320059182&id=<profile['graphql']['user']['id']>&first=12&after=<end_cursor>
答案 1 :(得分:-2)
您可以使用:?__ a = 1&amp; page = 3