我在我的应用程序中使用了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_css
和xpath
。我可能做错了或者它不能刮掉它们,因为没有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"
}
}
}
如何从此输出中选择个人资料图片,名称,页面所拥有的数量及其大标题图片?
答案 0 :(得分:0)
由于nokogiri没有处理javascript,我最终使用Facebook open graph
以json格式获取页面数据并执行JSON.load(open(link))
并从输出中解析它们。