2017-12-21 28 views
2

を使用して、URL内のメタタグを取得する:は、どのように私はこのようなコードを書いた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); 
$html = $data; 

//parsing begins here: 
$doc = new \DOMDocument(); 
@$doc->loadHTML($html); 
$metas = $doc->getElementsByTagName('meta'); 

このコードは、現在の仕事であるが、いくつかのURLは、スクレーピング防ぐためのPHPスクリプトをブロックします。この問題を解決するには?

+0

どのように素敵であることとあなたがしたくないサイトをスクラップないについては、それが働いた – rtfm

答えて

3

それはあなたは、以下の方法を使用して、すべてのメタタグを抽出することができます

curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
+1

おかげで –

1

に動作しますuser_agentのを追加します。

$tags = get_meta_tags('http://www.example.com/'); 

// Notice how the keys are all lowercase now, and 
// how . was replaced by _ in the key. 
echo $tags['author'];  // name 
echo $tags['keywords'];  // php documentation 
echo $tags['description']; // a php manual 
echo $tags['geo_position']; // 49.33;-86.59 
関連する問題