通过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点。
本帖最后由 u012716911 于 2013-11-04 11:25:29 编辑
代码是我自己这样想着写的,不知道还有没有更好的方法。请各位给些指点
有些网站可以抓到,如百度,有些网站就抓不到,比如太平洋汽车的首页。
<br />public function set_title()<br /> {<br /> // 获取进来URL<br /> $url = $_POST['url'];<br /> // $url = "www.pcauto.com.cn"; 抓不到!<br /> //一连串的curl设置 <br /> $ch = curl_init();<br /> curl_setopt($ch,CURLOPT_URL,$url);<br /> curl_setopt($ch,CURLOPT_HEADER,0);<br /> curl_setopt($ch,CURLOPT_ENCODING,'gzip');<br /> curl_setopt($c<b>/本文来源gao@!dai!ma.com搞$$代^@码5网@</b><strong>搞代gaodaima码</strong>h,CURLOPT_RETURNTRANSFER,1);<br /> $content_source = curl_exec($ch);<br /> curl_close($ch);<br /> <br /> //获取抓到内容的编码格式<br /><br /> $encode = mb_detect_encoding($content_source, array('GB2312','GBK','UTF-8','ASCII')); <br /> <br /> //转码<br /> $content_source = iconv($encode, 'utf-8//IGNORE',$content_source);<br /> <br /> //截取<title><br /> if(preg_match("/<title>(.*?)<\/title>/i",$content_source,$title))<br /> {<br /> echo $title[1];<br /> }<br /> else<br /> {<br /> echo '拉取标题失败';<br /> }<br /> }<br />
curl 抓取 标题
分享到:
(.*?)<\/title>/is”,$content_source,$title))
——解决方案——————–
问题出在正则匹配那里,你加个 s 修正符就好了
if(preg_match(“/
s 如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。
搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱chengxuyuan@gaodaima.com,我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:经过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点
转载请注明原文链接:经过URL抓取网页的TITLE,有些网站抓不到,方法愚笨,求指点
