【问题标题】:Facebook page scrapingFacebook页面抓取
【发布时间】:2011-11-10 08:18:23
【问题描述】:

我正在尝试废弃 Facebook 页面 (https://www.facebook.com/pages/PTSD/455847705426) 我发现这个脚本可以登录 facebook。

<?php
$EMAIL = "me@mail.com";
$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 格式。

请告诉我是否有一些有用的教程或文章。

问候

【问题讨论】:

  • 来自Facebook terms and conditions:未经我们的许可,您不会使用自动化方式(例如收获机器人、机器人、蜘蛛或刮刀)收集用户的内容或信息,或以其他方式访问 Facebook。
  • 不会帮助您违反 Facebook 的服务条款。

标签: php facebook curl screen-scraping web-crawler


【解决方案1】:

花点时间阅读developer documentation。您可以通过设置应用程序从页面获取所有帖子作为 JSON 对象,然后使用页面访问令牌查询图形 api。

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多