Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 更改日期范围并在循环中运行_Python - Fatal编程技术网

Python 更改日期范围并在循环中运行

Python 更改日期范围并在循环中运行,python,Python,我管理一个特定的。我试图获得1000+喜欢的帖子的URL 我不需要在应用程序中使用它来检索数据。我想从Graph API explorer的输出中手动复制1000+个喜欢的帖子的粘贴链接。我对此有点陌生 我曾尝试在API文档中搜索这样一个查询,该查询按照like进行过滤,但徒劳无功。我所能找到的就是如何使用此方法检索所有帖子 https://graph.facebook.com/ilovetrolls/posts?access_token= 是否有任何这样的查询可以让我们根据喜好进行筛选?您可

我管理一个特定的。我试图获得1000+喜欢的帖子的URL

我不需要在应用程序中使用它来检索数据。我想从Graph API explorer的输出中手动复制1000+个喜欢的帖子的粘贴链接。我对此有点陌生

我曾尝试在API文档中搜索这样一个查询,该查询按照like进行过滤,但徒劳无功。我所能找到的就是如何使用此方法检索所有帖子

https://graph.facebook.com/ilovetrolls/posts?access_token=

是否有任何这样的查询可以让我们根据喜好进行筛选?

您可能可以使用fql,并且您希望查询如下:

SELECT post_id, comments, like_info.like_count, message 
FROM stream
WHERE source_id = 263738183707778 and like_info.like_count > 1000 and created_time > 1325376000
将1325376000替换为所需的开始时间(此处以unix时间戳格式给出,仅供参考,请参阅,当前设置为2012年1月1日00:00:00)

它生成的您需要使用的url是:

https://graph.facebook.com/fql?q=SELECT post_id, comments, like_info.like_count, message FROM stream WHERE source_id = 263738183707778 and like_info.like_count > 1000 and created_time > 1325376000&access_token=
使用像limit=50这样的soemthing将有助于获取更多帖子。帖子的数量受我读到的fql api中的一个bug的限制。请参阅

建议使用安装的graph api。不幸的是,graph api没有一种基于喜欢的数量进行过滤的直接方法

可能要做的一件事是更改日期范围并在循环中运行示例,在该示例中,您迭代日期范围,为创建的时间设置上限和下限,然后在循环中运行它或执行批处理查询

如果您想更可靠地执行此操作,请尝试以下操作(以下是python脚本): 用您的访问令牌替换您的访问令牌

import urllib2
import json
access_token = 'YOUR_ACCESS_TOKEN_GOES_HERE'
request = urllib2.Request('https://graph.facebook.com/263738183707778/?fields=feed.fields%28likes.summary%28true%29.limit%281%29%29.limit%28500%29&access_token='+access_token)
data = urllib2.urlopen(request).read()
data_parsed = json.loads(data)


for a in data_parsed['feed']['data']:
    if 'likes' in a:
        if int(a['likes']['summary']['total_count'])>1000:
            print a['id'].replace('263738183707778_','https://www.facebook.com/ilovetrolls/posts/')

data_parsed = data_parsed['feed']
while 'paging' in data_parsed:
    request = urllib2.Request(data_parsed['paging']['next'])
    data = urllib2.urlopen(request).read()
    data_parsed = json.loads(data)
    for a in data_parsed['data']:
        if 'likes' in a:
            if int(a['likes']['summary']['total_count'])>1000:
                print a['id'].replace('263738183707778_','https://www.facebook.com/ilovetrolls/posts/')

您不能仅通过FQL查询来执行此操作。因此,您可以使用。或在输入位置编写自己的FQL查询。

Facebook Graph API不提供任何此类功能。唯一的方法是使用FQL查询。您可以使用以下FQL查询来检索此信息:

SELECT post_id, like_info.like_count 
FROM stream WHERE source_id = {Your Page Id} 
and like_info.like_count > 1000 LIMIT 50
例如,以下查询将返回为您的页面收到1000多个赞的帖子:

SELECT post_id, like_info.like_count 
FROM stream WHERE source_id = 263738183707778 
and like_info.like_count > 1000 LIMIT 50

注意:在FQL查询结束时使用
LIMIT 50
将在输出中返回比普通查询更多的帖子。我不知道这背后的原因。事实上,我相信这只是因为Facebook API的奇怪行为。

非常感谢您的回答……有什么提示吗?这个错误是什么或者,你可以使用graph api获取帖子,并获得喜欢的摘要,然后根据喜欢的数量对其进行过滤。这将确保你获得所有帖子。你用哪种语言编写代码?如何做到这一点?英语语言…我觉得很笨…我编写的代码不是用于任何应用程序或其他东西…我just需要手动获取url列表。:)如果您需要更多帮助,请告诉我似乎限制在500左右…可能无法帮助…是否有任何方法可以选择post url而不是post_id:)?如果您是手动操作,只需将post_id的最后15位数字添加到url
https://www.facebook.com/ilovetrolls/posts/
。例如,如果post_id为263738183707778_567657616649165,则该post的URL为。