7

Мы пытаемся получить ВСЕ сообщения с соответствующими комментариями и изображениями, внесенными в нашу группу в прошлом году. Я попытался использовать GraphAPI для этого, но разбиение на страницы означает, что мне нужно получить данные, затем скопировать «следующую» ссылку и снова запустить. К сожалению, это означает много работы, поскольку в группу входит более 2 миллионов сообщений.Загрузить все сообщения для группы У меня есть права администратора на использование Facebook Graph API

Означает ли кто-нибудь способ сделать это, не затрачивая несколько дней на клик? Также учтите, что группа насчитывает более 4000 членов и ежедневно растет, причем в среднем около 1000 сообщений - ДЕНЬ на данный момент.

Для любознательных, план отбраковать стадо ... Я БЕЗНАДЕЖНЫЙ при программировании и недавно начал изучать Python ...

ответ

5

Я сделал это так, вы, вероятно, придется перебирать через все должности до 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) 
+0

Оценил! Я испытал это сегодня вечером !! – Brendan

+0

Обратите внимание, что вам необходимо установить [facepy] (https://github.com/jgorset/facepy) – toefftoefftoeff

+0

И у меня проблемы. По какой-то причине Im борется за установку Facepy. Дайте несколько минут, и я вернусь к нему ... – Brendan

4

Я только что нашел и использовал решение @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 
Смежные вопросы