重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
// 抓取网页
金门ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
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
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
$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'}
确保采集的数据时对称的,可以用下面的方法
$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等数据的二维数组,这样采集完成后,可以将这个二维数组遍历循环插入数据库,这样也不容易出现错误
比如其中一个商品id为1,标题为“牙刷”,价格为$2,就这样写入数组$arr[1]=array("牙刷","$2")