以合法方式从Facebook提取公共数据

时间:2018-11-22 22:08:28

标签: facebook web-crawler screen-scraping

我想制作一个需要从Facebook收集一些公共数据的应用程序。 具体来说,我需要检查对公开帖子的反应和评论。

我注意到两件事: 首先,根据https://www.facebook.com/apps/site_scraping_tos_terms.php, 除非Facebook给予您书面许可,否则不得进行抓取。 (无论如何,我该如何请求许可?) 其次,据我所知,图表api不允许获取有关其他用户/页面发表的帖子的信息。我错了吗?

如何以合法方式获得所需信息,甚至有可能吗?

1 个答案:

答案 0 :(得分:0)

要在页面中获取公开帖子以及您的应用所需的对这些帖子的反应和评论,必须具有页面公开内容访问权限。如果尚未创建应用程序,则可以在此链接中找到操作方法,以及如何在此link中查看应用程序的权限。

获得许可后,您可以使用以下API请求从页面获取公开帖子

https://graph.facebook.com/<PAGE_ID>/posts?access_token=<ACCESS_TOKEN>&fields=name

从上述请求的响应中获取您需要详细信息的帖子编号

然后您可以使用以下请求根据帖子ID获取帖子的反应和评论

获得全部反应:

https://graph.facebook.com/<POST_ID>?fields=reactions.summary(true)&access_token=<ACCESS_TOKEN>

获取特定类型的总反应(无,喜欢,喜欢,哇,哈哈,悲伤,愤怒,感谢,骄傲):

https://graph.facebook.com/<POST_ID>?fields=reactions.summary(true).type(<REACTION_TYPE>)&access_token=<ACCESS_TOKEN>

获取评论:

https://graph.facebook.com/<POST_ID>?access_token=<ACCESS_TOKEN>&fields=comments.summary(true).limit(999).filter(stream).fields(id,message,created_time,parent)

对于用户的公开帖子,如果该帖子是公开的,则您可以通过提供帖子ID来获得具有相同请求的总反应,但是您无法获得评论,但是您将获得评论计数< / p>