如何从Facebook API输出中提取Facebook页面喜欢和个人资料图片

时间:2017-06-30 10:46:10

标签: ruby-on-rails ruby facebook parsing nokogiri

我在我的应用程序中使用了Nokogiri 1.7.1和Rails 4.2.4。当我查看Facebook的源代码时,没有HTML或CSS允许我选择并删除文本。

Facebook正在使用React代码:

// ....
showSponsorTaggerButtonNUX:false,showSponsorTaggerDirectBoost:false,showSponsorTaggerSponsorRelationship:false}},attachmentsConfig:{STATUS:{canScrapeShare:true,canAttachLocation:false,enabled:true,largeTextThreshold:85,profileID:null,profileName:null,profileURI:null,profilePicSrc:"https://scontent.fsvg1-1.fna.fbcdn.net/v/t1.0-1/c12.0.40.40/p40x40/10354686_10150004552801856_220367501106153455_n.jpg?oh=3ad0945d50cb5c25455167972e2cb9c6&oe=5A0CA7F8"
// ....

例如,我找到了profilePicSrc。我尝试使用at_cssxpath。我可能做错了或者它不能刮掉它们,因为没有Nokogiri可以选择/找到的CSS或HTML。

我设法从Facebook API获取这些细节:

{
   "id": "7270241753",
   "name": "YouTube",
   "cover": {
      "cover_id": "10156001238986754",
      "offset_x": 0,
      "offset_y": 0,
      "source": "https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/14591676_10156001238986754_7091829954587846661_n.jpg?oh=b5bc4ca11e6a5d47f18b798eb38cc176&oe=59DBEC50",
      "id": "10156001238986754"
   },
   "fan_count": 82634405,
   "picture": {
      "data": {
         "is_silhouette": false,
         "url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p50x50/19424472_10156001229851754_375700039380897185_n.jpg?oh=965b50ea998545bcbcb99fb90b3ba606&oe=59CEF703"
      }
   }
}

如何从此输出中选择个人资料图片,名称,页面所拥有的数量及其大标题图片?

1 个答案:

答案 0 :(得分:0)

由于nokogiri没有处理javascript,我最终使用Facebook open graph以json格式获取页面数据并执行JSON.load(open(link))并从输出中解析它们。

相关问题