我尝试从我的Facebook页面获取内容:
echo file_get_contents(“http://www.facebook.com/dma.y”);
问题是它没有给我页面,但重定向到另一个页面,说我需要升级我的浏览器。然后我想使用curl并通过发送带有一些标题的请求来获取它。
echo get_follow_url('http://www.facebook.com/dma.y');
function get_follow_url($url){
// must set $url first. Duh...
$http = curl_init($url);
curl_setopt($http, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($http, CURLOPT_HTTPHEADER, get_headers('http://google.com'));
// do your curl thing here
$result = curl_exec($http);
if(curl_errno($http)){
echo "<br/>An error has been thrown!<br/>";
exit();
}
$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE);
curl_close($http);
return $http_status;
}
仍然没有运气。我应该返回一个状态代码响应,它是404或200 ..取决于我是否登录到facebook。但它返回301,因为它将我的请求标识为不是常规浏览器请求。那么我在卷曲选项设置中缺少什么?
更新 我实际上要做的是复制这个功能:
该脚本将触发函数onload或onerror,具体取决于返回的状态代码..
该代码将检索该页面。但是,这个javascript方法很笨拙,并且在某些浏览器中会像firefox一样中断...因为它不是一个javascript文件。
答案 0 :(得分:4)
您可能想要尝试的是使用CURL设置user_agent
。
$url = 'https://www.facebook.com/cocacola';
$http = curl_init($url);
$fake_user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3';
curl_setopt($http, CURLOPT_USERAGENT, $fake_user_agent);
$result = curl_exec($http);
这是服务器查看的参数,以查看您正在使用的浏览器。我不是百分百确定这是否会绕过Facebook的支票并在页面上提供所有信息,但绝对值得一试! :)