2011-11-10 16 views
-3

Facebookのページをスクラップしようとしています(https://www.facebook.com/pages/PTSD/455847705426) このスクリプトではFacebookにログインしています。Facebook page scraping

<?php 
$EMAIL = "[email protected]"; 
$PASSWORD = "facebookPassword"; 

function cURL($url, $header=NULL, $cookie=NULL, $p=NULL) 
{ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, $header); 
curl_setopt($ch, CURLOPT_NOBODY, $header); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_COOKIE, $cookie); 
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 

if ($p) { 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $p); 
} 
$result = curl_exec($ch); 

if ($result) { 
return $result; 
} else { 
return curl_error($ch); 
} 
curl_close($ch); 
} 

$a = cURL("https://login.facebook.com/login.php?login_attempt=1",true,null,"email=$EMAIL&pass=$PASSWORD"); 
preg_match('%Set-Cookie: ([^;]+);%',$a,$b); 
$c = cURL("https://login.facebook.com/login.php?login_attempt=1",true,$b[1],"email=$EMAIL&pass=$PASSWORD"); 
preg_match_all('%Set-Cookie: ([^;]+);%',$c,$d); 
for($i=0;$i<count($d[0]);$i++) 
$cookie.=$d[1][$i].";"; 

/* 
NOW TO JUST OPEN ANOTHER URL EDIT THE FIRST ARGUMENT OF THE FOLLOWING FUNCTION. 
TO SEND SOME DATA EDIT THE LAST ARGUMENT. 
*/ 
$page_html = cURL("https://www.facebook.com/pages/PTSD/455847705426",null,$cookie,null); 


?> 

今変数$ page_htmlは、唯一のいくつかの記事を持っている。また、彼らは非常に複雑なコードに 私の質問です私はすべての記事を得ることができる方法

  1. です。
  2. 私は完全で明確なデータを返す他の方法があります。
  3. json形式ですべての投稿を投稿する方法があります。

有用なチュートリアルや記事があるかどうか教えてください。

よろしく

+2

[Facebookの利用規約](https://www.facebook.com/terms.php):自動化された手段(ボットの収穫など)を使用して、ユーザーのコンテンツや情報を収集したり、Facebookにアクセスしたりすることはありません、ロボット、スパイダー、またはスクレーパー)の使用を許可するものではありません。 – Quentin

+0

あなたはFacebookの利用規約を破るのに役立つつもりはありません。 – bkaid

答えて

2

developer documentationを読んでいくつかの時間をお過ごしください。アプリケーションを設定し、次にページアクセストークンでグラフAPIを照会することで、すべての投稿をページからJSONオブジェクトとして取得できます。