我正在尝试从外部页面链接源获取标题,描述。当我试图获取Facebook页面源并返回其他页面的源代码时,这不起作用。它正在谷歌等其他网站上工作。这是我的PHP代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
public function previewLink(){
$url = "https://www.facebook.com/NASA/";
$html = $this->file_get_contents_curl($url);
$title = "";
$description ="";
$image = "";
//parsing begins here:
$doc = new \DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue();
}
我没有得到我面临的问题。有人可以建议吗?提前谢谢。
答案 0 :(得分:1)
Facebook在http请求中需要UserAgent字符串。您可以使用此
添加curl_setopt($ch, CURLOPT_HTTPHEADER, array('User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/600.7.12 (KHTML, like Gecko) Version/8.0.7 Safari/600.7.12'));
仅供参考:当任何人在没有登录的情况下访问页面时,Facebook会使用显示验证码页面。