重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可用如下的代码来实现:
成都创新互联公司业务包括:成品网站、企业产品展示型网站建设、品牌网站制作、电子商务型网站建设、外贸营销网站建设(多语言)、商城网站开发、定制网站制作、网络营销推广等。效率优先,品质保证,用心服务是我们的核心价值观,我们将继续以良好的信誉为基础,秉承稳固与发展、求实与创新的精神,为客户提供更全面、更优质的互联网服务!
?php
$str1="|1234|#2354#@2314@
|1314|#2154#@2214@
|1234|#2354#@2314@
|1314|#2154#@2214@";
if(preg_match_all("/\|(\d{4})\|\#(\d{4})\#\@(\d{4})\@/m",$str1, $out, PREG_PATTERN_ORDER))
for($i=0;$icount($out[0]);$i++)
{
echo "{'".$out[1][$i]."','".$out[2][$i]."','".$out[2][$i]."'}br/";
}
?
效果如下所示:
{'1234','2354','2354'}
{'1314','2154','2154'}
{'1234','2354','2354'}
{'1314','2154','2154'}
正则提取div数据主要是使用PHP的file_get_content()函数。
具体示例:
HTML代码:
div class="chartInfo"
div class="line"/div
div class="tideTable"
strong潮汐表/strong数据仅供参考
table width="500" border="0" cellspacing="0" cellpadding="0"
tbodytr
td width="100"pspan潮时 (Hrs)/span/p/td
td width="100"p00:58/p/td
td width="100"p05:20/p/td
td width="100"p13:28/p/td
td width="100"p21:15/p/td
/tr
tr
tdpspan潮高 (cm)/span/p/td
td width="100"p161/p/td
td width="100"p75/p/td
td width="100"p288/p/td
td width="100"p127/p/td
/tr
/tbody/table
h2时区:-1000 (东10区) 潮高基准面:在平均海平面下174CM/h2
/div
div class="chart"
/div
/div
首页先用file_get_content或curl获取内容部分
PHP的正则处理程序:
?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
$return = curl_exec( $ch );
curl_close( $ch );
$regex4="/div class=\"tideTable\".*?.*?\/div/ism";
if(preg_match_all($regex4, $return, $matches)){
print_r($matches);
}else{
echo '0';
}
?
会用正则就会抓取。
不会正则,一时半会也教不错。
不过,推荐你使用phpQuery这个框架,用jQuery的使用器来抓取数据。
$ma=" /a class="text_count" href="#"(\d.*)/a/"
preg_match_all($ma,$str,$arr); 试试
用PHP正则表达式匹配,就可以提取class里面的数据,并将no去除,完整的PHP程序如下
?php
$str='div class="lot-nums"span class="no7"/spanspan class="no8"/spanspan class="no5"/spanspan class="no9"/spanspan class="no2"/spanspan class="no4"/spanspan class="no6"/spanspan class="no0"/spanspan class="no3"/span span class="no1"/span/div';
$regex='/span class="no(\d+)"/i';
preg_match_all($regex,$str,$result);
print_r($result[1]);
?
运行结果