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

WBOY
풀어 주다: 2016-06-23 14:26:24
원래의
1110명이 탐색했습니다.

本帖最后由 u012716911 于 2013-11-04 11:25:29 编辑

curl 抓取 标题

代码是我自己这样想着写的,不知道还有没有更好的方法。请各位给些指点
有些网站可以抓到,如百度,有些网站就抓不到,比如太平洋汽车的首页。

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);				//截取<title>		if(preg_match("/<title>(.*?)<\/title>/i",$content_source,$title))		{			echo $title[1];		}		else		{			echo '拉取标题失败';		}	}
로그인 후 복사

回复讨论(解决方案)

([\s\S]*?) <p class="sougouAnswer"> 问题出在正则匹配那里,你加个 s 修正符就好了 <br> if(preg_match("/</p> <title>(.*?)/is",$content_source,$title)) <br> <br> s  如果设定了此修正符,模式中的圆点元字符(.) 匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。 <p class="sougouAnswer"> 正则修饰符 </p> <p class="sougouAnswer"> 问题出在正则匹配那里,你加个 s 修正符就好了 <br> if(preg_match("/</p> <title>(.*?)/is",$content_source,$title)) <br> <br> s  如果设定了此修正符,模式中的圆点元字符(.) 匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。 <br> 非常感谢
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!