2017-06-30 8 views
-1

私のアプリケーションでNokogiri 1.7.1とRails 4.2.4を使用しています。 Facebookのソースコードを見ると、HTMLまたはCSSがないので、テキストを選択してスクレイプできます。例えば、私はprofilePicSrcを見つけFacebook APIの出力から好きなものとプロフィールの画像を抽出する方法

// .... 
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" 
// .... 

Facebookは、コードを反応させるの使用しています。私はat_cssxpathを使ってみました。 Nokogiriが選択/検索できるCSSやHTMLがないので、間違っているかもしれないし、それらを掻き取ることもできない。

私はFacebookのAPIからこれらの詳細を取得するために管理:

{ 
    "id": "7270241753", 
    "name": "YouTube", 
    "cover": { 
     "cover_id": "101560", 
     "offset_x": 0, 
     "offset_y": 0, 
     "source": "https://scontent.xx.fbcdn.net/v/t1.0-9/s720x720/14591676_101560_7091829954587846661_n.jpg?oh=b5bc4ca11e6a5d47f18b798eb38cc176&oe=59DBEC50", 
     "id": "101560" 
    }, 
    "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

あなたは最初にデータを抽出するためにFacebookを掻きすることはできません。 Facebookのページとやりとりする場合は、そのAPIを使用します。 – CBroe

+0

@CBroeに感謝します。以前はFacebook APIを使用したことがありません。ページの詳細を取得するためのAPIリンクは何ですか? – Rubioli

+0

https://developers.facebook.com/docs/graph-api/reference/page/ – CBroe

答えて

0

nokogiriはjavascriptを処理しないため、Facebook open graphを使用してページデータをjson形式で取得し、JSON.load(open(link))を出力して解析しました。

関連する問題