这里的next是什么意思?Python Instagram API

3 投票
3 回答
1913 浏览
提问于 2025-04-18 05:13

我正在尝试使用Python的Instagram API,遇到了一段我不太明白的示例代码,在它的github文档上找到的。

在第五行,为什么要加上next?next是干嘛的?
为什么我们不能直接写recent_media = api.user_recent_media(user_ir)?

from instagram.client import InstagramAPI

access_token = "YOUR_ACCESS_TOKEN"
api = InstagramAPI(access_token=access_token)
recent_media, next = api.user_recent_media(user_id="userid", count=10)
for media in recent_media:
   print media.caption.text

https://github.com/Instagram/python-instagram

3 个回答

0

使用api.user_recent_media(...)这个方法会返回两个值,其中第二个值是一个分页参数。

想了解更多信息,请查看文档 这里

3

这个 api.user_recent_media(user_id="userid", count=10) 语句会返回一个长度为2的元组,格式是:

(value1, value2)

如果你这样写:

recent_media = api.user_recent_media(user_id="userid", count=10)

那么 recent_media 就会是 (value1, value2)

但是如果你这样写:

recent_media, next = api.user_recent_media(user_id="userid", count=10)

那么 recent_media 就是 value1,而 next 就是 value2

示例

>>> z = ('a', 'b')
>>> print z
('a', 'b')

你也可以这样做:

>>> x,y = ('a', 'b')
>>> print x
a
>>> print y
b

这样处理数据会更方便。你不需要再用 z[0]z[1](其中 z 是上面提到的元组),而是可以直接使用 xy

希望这能帮到你

10

第二个参数是用来处理分页的。API调用会给你第一“页”的结果,如果你想要更多的结果,就需要获取后面的“页”。

如果你想尽可能多地获取图片,并最终得到一个包含媒体对象的列表在 recent_media 中,你可以这样做:

recent_media, next = self.api.user_recent_media(user_id=userid)
while next:
    more_media, next = self.api.user_recent_media(with_next_url=next)
    recent_media.extend(more_media)

如果你本来就限制结果为10条,你可以在第一次API调用后检查一下你得到了多少结果,如果已经足够了,就可以忽略分页的部分。(根据经验,API目前返回的是20条结果,但这似乎没有文档说明,所以可能会改变。)

撰写回答