作者dianian (电电)
看板PHP
标题[请益] preg_match_all解析yahoo搜寻结果
时间Sun May 27 22:27:45 2012
小弟打算利用写一支可以截取yahoo搜寻结果的相关词的程式
本例以"淡定红茶"为搜寻条件
以下为程式码:
$ch = curl_init();
$options = array(CURLOPT_URL =>
'
http://tw.search.yahoo.com/search;_ylt=A8tUwYBQ.MFPiWUAefFr1gt.?p=%E6%B7%A1%E5%AE%9A%E7%B4%85%E8%8C%B6&fr2=sb-top&fr=yfp&type_param=',
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => "Google Bot",
CURLOPT_FOLLOWLOCATION => true
);
curl_setopt_array($ch, $options);
$output = curl_exec($ch);
curl_close($ch);
$output=iconv("UTF-8","big5",$output);
preg_match_all('/<h2>相关词:<\/h2>(.*?)<\/a><\/li><\/ul><\/div><h2
class="off-left">/si',$output,$matches);
preg_match_all('/<a[^>]*+>([^<]*+(?:(?!<\/?+a)<[^<]*+)*+)<\/a>/i',$matches[0][0],$matches2,PREG_SET_ORDER);
print $matches2[0][0].", ".$matches2[0][1]."\n";
print $matches2[1][0].", ".$matches2[1][1]."\n";
print_r($matches);
小弟遇到的问题是:
$output是有值的,代表抓取整个页面内容有成功
但利用preg_match_all()函式去解析所要的内容(相关词)後,$matches阵列里却是空的
不知道是正规表示是有写错,还是其他地方有出错呢?
麻烦各位大大指点迷津,感恩> <
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.240.185.93