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

How to extract Facebook page likes and profile picture from Facebook API output

我在我的应用程序中使用 Nokogiri 1.7.1 和 Rails 4.2.4。当我查看 Facebook 的源代码时,没有 HTML 或 CSS 允许我 select 和抓取文本。

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。我可能做错了或者它不能抓取它们,因为没有 CSS 或 HTML Nokogiri 可以 select/find.

我设法从 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"
      }
   }
}

如何从这个输出中 select 个人资料图片、姓名、页面的点赞数及其大 header 图片?

由于 nokogiri 不处理 javascript,我最终使用 Facebook open graph 获取 json 格式的页面数据并执行 JSON.load(open(link)) 并从输出。