【问题标题】:Positive Scraping [closed]积极刮削[关闭]
【发布时间】:2012-11-08 22:53:12
【问题描述】:

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

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

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

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

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

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

提前致谢。

【问题讨论】:

  • 这是一个相当宽泛的问题:您是否正在寻找如何构建 Chrome 插件?如何从您的插件中引用另一个插件(Stylish)?如何在您的插件中执行 Stylish 的功能?请缩小范围,因为目前很难回答。

标签: javascript facebook google-chrome google-chrome-extension scrape


【解决方案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 框,然后接受权限对话框。

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

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

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

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

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

【讨论】:

  • 将在上午进行。非常感谢您的详细说明!
【解决方案2】:

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

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应该更强大。

【讨论】:

  • 早上会玩这个,感谢您的快速响应!
猜你喜欢
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-08
  • 2021-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
相关资源
最近更新 更多