php专区

 首页 > php专区 > PHP高级 > 缓存异常处理 > 经过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点

经过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点

分享到:
【字体:
导读:
         摘要:通过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点。本帖最后由 u012716911 于 2013-11-04 11:25:29 编辑 代码是我自己这样想着写的,不知道还有没有更好的方法。请各位给些指点 有些网站可以抓到,如百度,有些网站就抓不到,比如太平洋汽车的...

经过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点
通过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点。
本帖最后由 u012716911 于 2013-11-04 11:25:29 编辑
代码是我自己这样想着写的,不知道还有没有更好的方法。请各位给些指点
有些网站可以抓到,如百度,有些网站就抓不到,比如太平洋汽车的首页。


public function set_title()
{
// 获取进来URL
$url = $_POST['url'];
// $url = "www.pcauto.com.cn"; 抓不到!
//一连串的curl设置
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_ENCODING,'gzip');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$content_source = curl_exec($ch);
curl_close($ch);

//获取抓到内容的编码格式

$encode = mb_detect_encoding($content_source, array('GB2312','GBK','UTF-8','ASCII')); 

//转码
$content_source = iconv($encode, 'utf-8//IGNORE',$content_source);

//截取<br> if(preg_match("/<title>(.*?)/i",$content_source,$title))
{
echo $title[1];
}
else
{
echo '拉取标题失败';
}
}
curl 抓取 标题

------解决方案--------------------
问题出在正则匹配那里,你加个 s 修正符就好了
if(preg_match("/(.*?)/is",$content_source,$title))

s  如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。 经过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点
分享到:
PHP语言,未赋值的变量?该怎么处理
PHP语言,未赋值的变量?该怎么处理 PHP语言,未赋值的变量?http://docs.php.net/manual/zh/language.types.null.php 问题: 1. ubuntu@ubuntu:~$ php /var/www/b.php PHP Notice:  Undefined variable: x in /var/www/b.php on line 3 上面代码,第3行错了! PHP语法,变量可以不赋值。 如果,变量不赋值...
Request-URI Too Large如何解决
Request-URI Too Large如何解决 Request-URI Too Large怎么解决 414 Request-URI Too Large Request-URI Too Large The requested URL&#039;s length exceeds the capacity limit for this server. request failed: URI too long Apache/1.3.29 Server at localhost Port 80 在把数据内容上传...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……