【问题标题】:Download all posts for Group I have Admin rights to using Facebook Graph API下载群组的所有帖子我拥有使用 Facebook Graph API 的管理员权限
【发布时间】:2014-01-29 07:41:46
【问题描述】:

我们正在尝试检索去年发布给我们组的所有帖子,以及相关的 cmets 和图像。我尝试使用 GraphAPI 来执行此操作,但分页意味着我必须获取数据,然后复制“下一个”链接,然后再次运行。不幸的是,这意味着很多工作,因为该组有超过 200 万个帖子。

有没有人知道不用花几天时间点击就能做到这一点的方法?还要考虑到该群组有 4000 多名成员,并且每天都在增长,目前平均每天有大约 1000 个帖子。

出于好奇,计划是扑杀牛群... 我在编程方面没有希望,最近开始学习 Python...

【问题讨论】:

    标签: facebook python-3.x facebook-graph-api download facebook-group


    【解决方案1】:

    我是这样做的,您可能必须遍历所有帖子,直到 data 为空。请注意,这是 Python 2.x 版本。

    from facepy import GraphAPI
    import json
    
    group_id = "YOUR_GROUP_ID"
    access_token = "YOUR_ACCESS_TOKEN"
    
    graph = GraphAPI(access_token)
    
    # https://facepy.readthedocs.org/en/latest/usage/graph-api.html
    data = graph.get(group_id + "/feed", page=False, retry=3, limit=800)
    
    with open('content.json', 'w') as outfile:
      json.dump(data, outfile, indent = 4)
    

    【讨论】:

    • 感谢!今晚我会测试这个!
    • 我遇到了问题。无论出于何种原因,我都在努力安装 Facepy。给我几分钟,我会重新开始的......
    • 从哪里获得访问令牌?
    【解决方案2】:

    我刚刚找到并使用了@dfdfdf 的解决方案,这太棒了! 您可以将其概括为从提要的多个页面下载,而不仅仅是第一个页面,如下所示:

    from facepy import GraphAPI
    import json
    
    group_id = "\YOUR_GROUP_ID"
    access_token = "YOUR_ACCESS_TOKEN"
    
    graph = GraphAPI(access_token)
    pages = graph.get(group_id + "/feed", page=True, retry=3, limit=1000)
    i = 0
    for p in pages:
        print 'Downloading page', i
        with open('content%i.json' % i, 'w') as outfile:
            json.dump(p, outfile, indent = 4)
        i += 1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多