【问题标题】:How to get all comments of a facebook post using facebook SDK in Python?如何在 Python 中使用 facebook SDK 获取 facebook 帖子的所有评论?
【发布时间】:2017-01-18 06:04:34
【问题描述】:

我想获取 facebook 帖子的所有 cmets。我们可以通过在 Api 调用中传递 limit() 来提取 cmets 但是我们如何知道限制?我需要所有的cmets。

https://graph.facebook.com/10153608167431961?fields=comments.limit(100).summary(true)&access_token=LMN  

通过使用这个

data = graph.get_connections(id='10153608167431961', connection_name='comments')

我得到了几个 cmets。 如何获取帖子的所有 cmets?

编辑

import codecs
import json
import urllib

import requests
B = "https://graph.facebook.com/"
P ="10153608167431961"
f = "?fields=comments.limit(4).summary(true)&access_token="
T = "EAACb6lXwZDZD"
url = B+P+f+T


def fun(data):

    nextLink =  (data['comments']['paging']['next'])
    print(nextLink)
    for i in data['comments']['data']:
        print (i['message'])

    html = urllib.request.urlopen(nextLink).read()
    data = json.loads(html.decode('utf-8'))
    fun(data)

html = urllib.request.urlopen(url).read()
d = json.loads(html.decode('utf-8'))

fun(d)

报错

KeyError: 'cmets'

【问题讨论】:

    标签: python facebook facebook-graph-api recursion


    【解决方案1】:

    您需要实现分页以获取所有/更多 cmets:https://developers.facebook.com/docs/graph-api/using-graph-api/#paging

    通常,这是通过“递归函数”完成的,但您必须记住,如果有很多 cmets,您可能会达到 API 限制。最好只按需加载更多的 cmets。

    JavaScript 示例:How does paging in facebook javascript API work?

    【讨论】:

    • 你能给我介绍一个使用分页从 facebook 获取任何东西的工作示例吗?
    • 看看我回答中的 SO 链接,有一个 javascript 示例。您只需要对“下一个”链接进行递归调用,这是一个简单的 api 调用。
    • 我在 python 中工作。我从不使用 javascript。 :)
    • 递归函数是一个基本的编程概念,google 上可能有成千上万的例子。例如:stackoverflow.com/questions/479343/…
    • 当您知道如何编写递归函数时,剩下的就很简单了,只需查看我答案中的第一个链接即可。在每个 api 调用中,您都会获得一个“下一个”链接,即下一个结果批次的 api 调用。
    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    相关资源
    最近更新 更多