如何从 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_css
和 xpath
。我可能做错了或者它不能抓取它们,因为没有 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))
并从输出。
我在我的应用程序中使用 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_css
和 xpath
。我可能做错了或者它不能抓取它们,因为没有 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))
并从输出。