[請益] preg_match_all解析yahoo搜尋結果
小弟打算利用寫一支可以截取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
→
05/28 00:44, , 1F
05/28 00:44, 1F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章