【问题标题】:Instagram API python user followed byInstagram API python 用户,后跟
【发布时间】:2014-10-22 17:00:11
【问题描述】:

我正在使用“api.user_followed_by”,它只显示 50 个用户,然后显示所有用户的链接,例如 "https://api.instagram.com/v1/users/<id>/followed-by?access_token=<ACCESS-TOKEN>" 我需要将所有用户保存在数据库中,有办法显示用户的所有关注者吗?也许是因为我在 shell 中这样做?

([User: victoriasecretmcb, User: laueleizalde, User: marellasdesign, User: caetano_nuno, User: eloy_fernandes, User: sparkles_design, User: xavinavas23, User: kikexr, User: ds_franklin, User: danielcaetano15, User: carlosalicova, User: donmiguelv, User: psteinvorth, User: hakvdub, User: _abrah, User: 7dimitri7, User: j.capote, User: roger_hannouch, User: gguerrero26, User: macmaquillaje02, User: ilgenuas, User: alem274, User: zebrols, User: edwinaleman69, User: gfmmartins, User: dego5, User: eliocastaneda3, User: jeancastilloc, User: dajosama, User: jamesdancer73, User: gavoonmaguire, User: nolygarcia62, User: maajiswim_siut, User: jjuankab, User: tikiticas, User: adefreitasvz, User: tenias66, User: obliviousowl_, User: lykus, User: mc_hasel, User: gabriela_m_oropeza_b, User: gabosanabria, User: adzamski, User: eishynena, User: tropical_chik_ve, User: teddy_bear567, User: cae_ucv, User: nikeexclusivo1, User: pablojmg, User: felixizarra], 'https://api.instagram.com/v1/users/307622607/followed-by?access_token=307622607.5593d6d.0936a78b99054931982b9b644ec75f48&cursor=1402704073642')

【问题讨论】:

  • 我猜您使用的是 python 库而不是自己调用它?我已经相应地更新了我的答案

标签: python api instagram


【解决方案1】:

您需要使用分页。 API 响应应包含一个名为 next_url 的值,调用该值您将获得 50 多个用户。如果不分页,就无法一次获取所有内容。

http://instagram.com/developer/endpoints/

在您的情况下,您似乎正在使用 Python API 库,因此在调用 user_followed_by 时添加 as_generator=True。这应该返回一个您可以迭代的生成器对象。

def example():
    generator = api.user-followed_by(as_generator=True, max_pages=None)
    for page in generator:
        print page #page will have the next 50 users, etc

【讨论】:

  • 我明白了,但我不明白如何使用它,你能举个例子吗?
  • 分享一个 API 响应,我可以给你看一个例子
  • foll = api.user_followed_by(a), ([用户: pablojmg, 用户: felixizarra], 'api.instagram.com/v1/users/307622607/…)
  • 响应,例如调用 API 时返回给您的内容,并将其放入问题中,将太大而无法评论
  • 对不起,我错过了点击回车,我剪切了大部分用户来粘贴示例
【解决方案2】:

在 Instagram 中有一种更简单的方法来处理分页。此功能适用于您关注的所有人,您可以将其更改为您关注的所有人。所有用户的值都将在 current_following 的集合中,这是一个从分页循环内部存储的类变量。

currently_following = set([])
def parse_following(next_url=None):
    if next_url == None:
        urlUserMedia = "https://api.instagram.com/v1/users/self/follows?access_token=%s" % (auth_token)
    else:
        urlUserMedia = next_url
    values = {
              'client_id' : client_id}
    try:
        data = urllib.urlencode(values)
        req = urllib2.Request(urlUserMedia,None,headers)
        response = urllib2.urlopen(req)
        result = response.read()
        dataObj = json.loads(result)
        next_url = None
        if dataObj.get('pagination') is not None:
            next_url = dataObj.get('pagination').get('next_url')
            currently_following.update(user['id'] for user in dataObj['data'])
        if next_url is not None:
            parse_following(next_url)

    except Exception as e:
        print e

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多