正则在小偷程序中的应用(续)
2011-09-15 08:53
169 查看
//获取资源信息 $content = file_get_contents("http://list.sososteel.com/qg/list.html?pg=1&h=".time()); /*对抓取的信息进行处理。取class为listTable的表信息。[^<>]匹配除<>外的所有字符。*?用的是懒惰限定符,代表重复任意次,但尽量少重复。即匹配最短的以<table开始的,以class="listTable"为结束的字符串。如aabbcc字符串,如果用懒惰限定符匹配的话应该是aab。如果用贪婪匹配的话应该aabb。*/ preg_match("/<table [^<>]*? class=\\\"listTable\\\">(.*?)<\/table>/s",$content,$out); /*抓取tbody的内容,重复一次或多次*/ preg_match_all("/<tbody>(.+?)<\/tbody>/s",$out[1],$outData); if(empty($outData[1])){ return null; }else{ $out_arr=array(); //循环输出抓取的内容 foreach($outData[1] as $i=>$key){ //取td的内容 preg_match_all("/<td.*?>(.+?)<\/td>/s",$key,$td); if(count($td[1])==7){ foreach($td[1] as $j=>$em){ //$em = iconv("gb2312","utf-8",$em); switch($j){ case 0:continue;break; case 1:continue;break; case 2: preg_match_all("/<a.*?>(.+?)\<\/a>/s",$em,$name); $out_arr[$i]['name']=$name[1][0]; preg_match_all("/<span.*?>(.+?)\<\/span>/s",$em,$time); $out_arr[$i]['time']=$time[1][0]; preg_match_all("/<div class=\\\"listText\\\">(.+?)<br \/>/s",$em,$other); if(empty($other[1])){ $out_arr[$i]['spec']=null; $out_arr[$i]['mater']=null; $out_arr[$i]['factory']=null; }else{ $oth=explode(" ",implode('',$other[1])); $out_arr[$i]['spec']=trim($oth[0]); $out_arr[$i]['mater']=trim($oth[1]); $out_arr[$i]['factory']=trim($oth[2]); } $out_arr[$i]['company']=$name[1][1]; continue;break; case 3: $out_arr[$i]['city']=trim($em); continue;break; case 4: $out_arr[$i]['price']=trim(strip_tags($em)); continue;break; } } } else continue; } } print_r($out_arr);
相关文章推荐
- 小偷程序正则应用实例
- 正则在小偷程序中的应用
- 正则方式的自动小偷抓网程序
- PHP 小偷程序应用的几个函数
- 正则表达式在程序中的应用 .net
- PHP正则表达式匹配并输出数组(做小偷程序很有用)
- 关于java程序中的正则表达式的应用小解(1)
- [30期] PHP正则表达式写天气预报小偷程序
- 正则表达式在java程序中的应用分析[转的]
- 用正则和xmlHttp实现的asp小偷程序
- 用正则和xmlHttp实现的asp小偷程序
- 正则方式的自动小偷抓网程序
- 小偷的应用-----域名注册查询程序
- 正则方式的自动小偷抓网程序
- 正则方式的自动小偷抓网程序
- Python 爬虫小程序(正则表达式的应用)
- 模拟请求初步应用,制作网页游戏辅助程序(开心网争车位、咬人、买房子、虚拟朋友、礼物)
- (转)深入正则表达式应用