//?抓取网页
echo?"\n\n抓取网页=======================================\n";
function?getHTTPS($url)?{
$ch?=?curl_init?();
curl_setopt?(?$ch,?CURLOPT_SSL_VERIFYPEER,?FALSE?);
curl_setopt?(?$ch,?CURLOPT_HEADER,?false?);
curl_setopt?(?$ch,?CURLOPT_FOLLOWLOCATION,?true?);
curl_setopt?(?$ch,?CURLOPT_URL,?$url?);
curl_setopt?(?$ch,?CURLOPT_REFERER,?$url?);
curl_setopt?(?$ch,?CURLOPT_RETURNTRANSFER,?TRUE?);
$result?=?curl_exec?(?$ch?);
curl_close?(?$ch?);
return?$result;
}
$result?=?getHTTPS?(?""?);
$array?=?array?(
'img',
'script',
'link'?
);
$num?=?count?(?$array?);
for($i?=?0;?$i?$num;?++?$i)?{
echo?$array?[$i]?.?"--------------------------------\n";
if?(preg_match_all?(?"/"?.?$array?[$i]?.?"[^]*/i",?$result,?$m?))?{
for($j?=?0;?$j?count?(?$m?[0]?);?$j?++)?{
echo?$m?[0]?[$j]?.?"\n";
$string_1 = '
tr
/tr
td align=right b地址:/b/td
td align=right b人均:/b/td
td align=rightb菜系:/b/td
td快餐/小吃/td
'
;
preg_match_all ("|td[^]*([^(b)].*)/td|", $string_1, $out, PREG_PATTERN_ORDER);
print_r($out[1]);
---------------------------------------------------------
输出结果为:
Array
(
)
可用如下的代码来实现:
php
for($i=0;$icount($out[0]);$i++)
{
效果如下所示:
确保采集的数据时对称的,可以用下面的方法
$arr_id = array();
$arr_title = array();
$sql= array();
$arr_id[] = explode('.',你采集的id串);
$arr_title[] = explode('.',你采集的title串);
for($i=0,$icount($arr_id),$i++){
$sql[] = "insert into table (id,title) values ($arr_id[$i],'$arr_title[$i]')"
简单写的话就是
preg_match("(title.*?.*?title)ims",$b,$a);
$a[0]是你要的
个人建议采集到的数据存储为二维数组,其中商品id是唯一的,所以将id作为键值,然后每个键值对应的是一个一次包含title,price等数据的二维数组,这样采集完成后,可以将这个二维数组遍历循环插入数据库,这样也不容易出现错误
以上就是土嘎嘎小编为大家整理的php采集数据正则for相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!