最近研究了一下网址目录网站,里面全部都有一个输入网址后点击抓取Meta按钮就可以一键把目标网址的标题,关键字和描述信息抓取过来,非常方便。
其实原理非常简单就是使用了一个PHP的get_meta_tags函数。
但是老蔡发现很多网站都做的不是十分完美,可能是建站时间较早的原因。有些不填http就获取不到,有的必须填写完整网址,有的只能获取http不能获取https。
经过测试,下面提供一个非常完美的解决方案。通过判断可以获取所有的情况。
/**
*根据网址获取网站信息
*/
public function getWebInfo($siteurl){
$preg = "/^http(s)?:\\/\\/.+/"; //正则表达式,判断输入的网址中是否包含http或https
if(preg_match($preg,$siteurl))
{
//如果包含则直接返回获取到的meta信息
return json_encode(get_meta_tags($siteurl));
}else{
//如果不包含
if(get_meta_tags('http://'.$siteurl)){
//先获取http的,如果获取到则直接返回
return json_encode(get_meta_tags('http://'.$siteurl));
}else{
//否则就获取https的。
return json_encode(get_meta_tags('https://'.$siteurl));
}
}
}
需要注意的一点是:在本地测试过程中,刚开始的时候https的根本就获取不到&