从API图中获取我的墙太慢了

时间:2012-01-05 09:32:47

标签: python performance facebook-graph-api graph

我想知道从json(图api)获取整个Facebook墙需要多少时间(secend)

我需要大约190秒来完成我的整个墙贴(可能是2000个帖子和131个页面(json))

以下是python代码。该代码只是阅读帖子。

我的代码有问题吗?我应该减少我的回复时间吗?

accessToken = "Secret"
requestURL = "https://graph.facebook.com/me/feed?access_token="+accessToken
beforeSec = time.time()*1000
pages = 1
while 1:
    read = urllib.urlopen(requestURL).read()
    read = json.loads(read)
    data = read["data"]
    for i in range(0, len(data)):
        pass
    try:
        requestURL = read["paging"]["next"]
        pages+=1
    except:
        break
afterSec = time.time()*1000

print afterSec - beforeSec

2 个答案:

答案 0 :(得分:1)

这取决于用户墙的大小......他们已经发布了一个新的批处理函数:http://developers.facebook.com/docs/reference/api/batch/

Mayb你能用吗?

答案 1 :(得分:0)

您的代码是同步的,因此您逐个下载页面。

速度非常慢,您可以并行下载多个页面。

Greenlet是Python并行计算的新宣传,所以试试gevent

嗯,这是提供的,您可以在下载整个上一页之前获得下一页。试着看看你是否可以快速获得下一个分页。