$string_1 = '
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供寧武網(wǎng)站建設(shè)、寧武做網(wǎng)站、寧武網(wǎng)站設(shè)計(jì)、寧武網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、寧武企業(yè)網(wǎng)站模板建站服務(wù),十余年寧武做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
tr
td width=15% align=rightb電話:/b/td
td width=85%86666947/td
/tr
tr
td align=right b地址:/b/td
td 春熙路8號(hào)/td
/tr
tr
td align=right b人均:/b/td
td span class=f_red_14b14/span元/td
/tr
tr
td align=rightb菜系:/b/td
td快餐/小吃/td
/tr
'
;
preg_match_all ("|td[^]*([^(b)].*)/td|", $string_1, $out, PREG_PATTERN_ORDER);
print_r($out[1]);
---------------------------------------------------------
輸出結(jié)果為:
Array
(
[0] = 86666947
[1] = 春熙路8號(hào)
[2] = 快餐/小吃
)
?php
$str = "ABC'; F(ZZZ), KSE KKS(YYY), PSX-D.M(XXX)";
$arr = explode(",",$str);//分割成數(shù)組
foreach($arr as $value){//用foreach循環(huán),也可以用for循環(huán)
$out = array();//儲(chǔ)存匹配的數(shù)組
$title = "";//儲(chǔ)存title部分
$text = "";//儲(chǔ)存鏈接顯示文本
//先把括號(hào)里的內(nèi)容和括號(hào)外的內(nèi)容匹配到數(shù)組$out
preg_match("|(.+)\((.+)\)|",$value,$out);
//括號(hào)里的內(nèi)容就是title
$title = $out[2];
//把括號(hào)外的內(nèi)容中所有符號(hào)替換成-(這里去了一下首尾空格)
$text = preg_replace("|(\W+)|","-",trim($out[1]));
//OK了,輸出
echo "a href=\"#\" title=\"{$title}\" /{$text}/a,";
}
/**
最后輸出:
a href="#" title="ZZZ" /ABC-F/a,a href="#" title="YYY" /KSE-KKS/a,a href="#" title="XXX" /PSX-D-M/a,
*/
問題其實(shí)不難,自己都能寫。給你幾個(gè)思路吧:
1.在百度知道中,輸入linux,然后會(huì)出現(xiàn)列表。復(fù)制瀏覽器地址欄內(nèi)容。
然后翻頁,在復(fù)制地址欄內(nèi)容,看看有什么不同,不同之處,就是你要循環(huán)分頁的i值。
當(dāng)然這個(gè)是笨方法。
2.使用php的file或者file_get_contents函數(shù),獲取鏈接URL的內(nèi)容。
3.通過php正則表達(dá)式,獲取你需要的3個(gè)字段內(nèi)容。
4.寫入數(shù)據(jù)庫。
需要注意的是,百度知道有可能做了防抓取的功能,你剛一抓幾個(gè)頁面,可能會(huì)被禁止。
建議也就抓10頁數(shù)據(jù)。
其實(shí)不難,你肯定寫的出來。 還有,網(wǎng)上應(yīng)該有很多抓取工具,你找找看,然后將抓下來的數(shù)據(jù)
在做分析。寫入數(shù)據(jù)庫。