使用curl获取页面的meta中keywords和description

作者:enenba | 发表于:2012-05-22 21:54 | 分类:php采集

前面的文章《php正则得到网页的keywords和description部分》已经提到正则提取keywords和description了,现在再介绍使用curl的来提取meta中的keywords和description。相对get_meta_tags,cURL拿来采集更为强大。
下面cURL拿来采集meta ,php函数:

<?php

/**
 * 使用cURL获取一个网页中的 keyword 和 description 部分
 * 
 * @param str $ 查询的url地址
 * @return array array('keyword'=>keyword部分,'description'=>description部分)
 */
function curl_getkd($url) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url); 
	curl_setopt($ch, CURLOPT_HEADER, 1); 
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$html = curl_exec($ch);
	$info = curl_getinfo($ch);
	if ($html === false) {
		echo "cURL Error: " . curl_error($ch);
	} 
	curl_close($ch);
	preg_match_all("/<meta[^>]+name=\"([^\"]*)\"[^>]" . "+content=\"([^\"]*)\"[^>]*>/i", $html, $r, PREG_PATTERN_ORDER);
	for ($i = 0;$i < count($r[1]);$i++) {
		if (strtolower($r[1][$i]) == "keywords") $meta['keywords'] = $r[2][$i];
		if (strtolower($r[1][$i]) == "description") $meta['description'] = $r[2][$i];
	} 
	return $meta;
} 
// 测试
$r = curl_getkd('http://www.qq.com/');
echo '<pre>';
print_r($r);
echo '</pre>';
// 输出
/**
  Array
  (
 [keywords] => ……
  [description] => ……
  )
 */

?>

 

对于结果不同的编码还要进行转码处理,这就不多解释了。

end...

上一篇: php采集百度某关键词搜索结果的网址   |   下一篇:php 获取301跳转后真实的url» 标签: php采集 meta keywords description

评论: