重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
$string_1 = '
创新互联公司专业为企业提供宁武网站建设、宁武做网站、宁武网站设计、宁武网站制作等企业网站建设、网页设计与制作、宁武企业网站模板建站服务,十余年宁武做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
tr
td width=15% align=rightb电话:/b/td
td width=85%86666947/td
/tr
tr
td align=right b地址:/b/td
td 春熙路8号/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]);
---------------------------------------------------------
输出结果为:
Array
(
[0] = 86666947
[1] = 春熙路8号
[2] = 快餐/小吃
)
?php
$str = "ABC'; F(ZZZ), KSE KKS(YYY), PSX-D.M(XXX)";
$arr = explode(",",$str);//分割成数组
foreach($arr as $value){//用foreach循环,也可以用for循环
$out = array();//储存匹配的数组
$title = "";//储存title部分
$text = "";//储存链接显示文本
//先把括号里的内容和括号外的内容匹配到数组$out
preg_match("|(.+)\((.+)\)|",$value,$out);
//括号里的内容就是title
$title = $out[2];
//把括号外的内容中所有符号替换成-(这里去了一下首尾空格)
$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,
*/
问题其实不难,自己都能写。给你几个思路吧:
1.在百度知道中,输入linux,然后会出现列表。复制浏览器地址栏内容。
然后翻页,在复制地址栏内容,看看有什么不同,不同之处,就是你要循环分页的i值。
当然这个是笨方法。
2.使用php的file或者file_get_contents函数,获取链接URL的内容。
3.通过php正则表达式,获取你需要的3个字段内容。
4.写入数据库。
需要注意的是,百度知道有可能做了防抓取的功能,你刚一抓几个页面,可能会被禁止。
建议也就抓10页数据。
其实不难,你肯定写的出来。 还有,网上应该有很多抓取工具,你找找看,然后将抓下来的数据
在做分析。写入数据库。