ウェブサイトのホームページを開いて、phpでcurlを使用してhtmlマークアップからタイトルと説明を抽出しようとしています。これはある程度成功していますが、多くのウェブサイトを開くことができません。私のコードはここにあります:
function curl_download($Url){
if (!function_exists('curl_init')){
die('Sorry cURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
// $url is any url
$source=curl_download($url);
$d=new DOMDocument();
$d->loadHTML($source);
$title=$d->getElementsByTagName("title")->item(0)->textContent)
$domx = new DOMXPath($d);
$desc=$domx->query("//meta[@name='description']")->item(0);
$description=$desc->getAttribute('content');
?>
このコードはほとんどのWebサイトで正常に機能していますが、開くことさえできない人もたくさんいます。理由は何ですか?
関数を使用してこれらのWebサイトのヘッダーを取得しようとすると、正常に機能しget_headers
ますが、curlを使用してこれらのWebサイトを開くことができません。これらのWebサイトのうちの2つはとblogger.com
ですlive.com
。