2

背景:我是 facebook 上一个音乐分享(盗版 gs/yt 的链接)组的一员。每天最多有 20 名成员发布他们认为社区会喜欢的歌曲的链接,因此我们越来越喜欢这种类型的音乐。在月底,我们想创建一个列表,列出我们每个月发布的所有歌曲的所有标题。

问题:Facebook 不提供此功能,它仅提供非常轻量级的搜索功能(无子过滤器),甚至该搜索也仅返回在帖子中找到的字符串的结果。所以,例如。搜索:“BB King”将返回包含该字符串的帖子,更糟糕的是,如果该帖子是该歌曲的,但在帖子中,用户没有评论“BBKing”,结果将不会返回该链接。Fb 也不允许标记帖子。

乱七八糟:通过使用一个名为 Stylish 的 Chrome 插件,我可以(有时)在 facebook 页面上隐藏某个类的大多数元素(又名自定义用户代理样式)并直观地收集我需要的东西。不幸的是,这不适用于我的示例。

我确实缩小了 div 类的名称,其中的 innerHTML 包含我需要的曲目和艺术家信息。

目标:我想创建一个 Chrome 插件,该插件将抓取该 div 的所有实例(具有此类名称)的页面,然后将其 innerHTML 内容存储在一个数组中,以便以后导出。这样做可以让我创建一整月的列表并将其作为文件发布在 Facebook 群组的“文件”选项卡中。

指出我正确的方向,我会开始修修补补!

提前致谢。

4

2 回答 2

1

你甚至不需要求助于刮!Graph API 可提供帮助:

https://developers.facebook.com/docs/reference/api/group/

因此,假设您还没有 Facebook 应用程序,您可以通过以下方式查看可以获得的内容:

https://developers.facebook.com/tools/explorer/?method=GET&path=me/groups

这是 Graph Explorer,一个简单的工具,它向您显示通过 Graph API 可用的数据,您需要单击 Get Access Token 并选中该user_groups框,然后接受 Permissions 对话框。

这将返回一个 JSON 对象,其中包含您所属的所有组。抓住id你试图获取所有这些链接的那个,然后转到它的 Graph API 提要节点:

https://graph.facebook.com/114817635246802/feed

您需要在此处使用访问令牌。您可以从 Graph Explorer 复制并粘贴一个。这将返回一个 JSON 对象,其中包含组中的最新帖子以及分页链接。使用这些,您可以检索 JSON 格式的完整列表,其中包含指向您的音乐的所有链接。

现在,您将要学习的内容: - 如何创建 Facebook 应用程序 - 如何生成您自己的访问令牌 - 如何以编程方式发出 API 请求

阅读本教程,如果您对 Javascript 和 HTML 有一点点熟悉,大约 10 分钟就可以掌握。祝你好运!

于 2012-11-08T23:44:00.530 回答
0

您不需要构建 chrome 扩展,放置在书签中的一个小的 javascript 片段就可以完成这项工作:

javascript:var all_the_divs_content = '';
    var divs = document.getElementsByClassName('test'); 
    for( var i = 0 ; i < divs.length ; i++ ){
     all_the_divs_content += divs[i].innerHTML + '<br/> ---- <br/>';    
    }
    all_the_divs_content_window = window.open('about:blank','');
all_the_divs_content_window.document.write( all_the_divs_content );

http://jsfiddle.net/gael/J8R6k/

但我认为facebook api应该更强大。

于 2012-11-08T23:36:51.450 回答