php抓取网页动态数据(经理让做一个插件,demo中要直接保存id,)

优采云 发布时间: 2021-10-16 20:00

  php抓取网页动态数据(经理让做一个插件,demo中要直接保存id,)

  前言:10月20日星期五,经理要求做一个插件,用thinkphp做这个demo

  如果你在使用CURL获取远程数据时出现乱码,可以加入

  header("content-type:text/html;charset=utf-8");

  或者使用mb_convert_encoding函数来转换字符编码

  这个demo最终要捕获的信息是经过不断的分层调用,即

  1.根据a*敏*感*词*ey获取所有品牌并获取品牌id

  2.根据品牌id获取所有型号,获取型号id

  3.根据model id获取所有样式,并获取样式Id

  4.根据样式Id获取详细信息

  使用json解码函数解析服务端返回的Json数据,注意不要添加

  //curl_setopt($ch, CURLOPT_HEADER, 1);//不加,否则无法正确解析json数据,因为数据收录更多http头信息

  json_decode函数的第二个参数为true,保证返回值是数组

  使用 $this->assign("模板变量名", $decoded array)

  所有品牌数据都可以在前端的下拉列表中获取:

  请选择品牌:

{$vo.name}

  使用ajax将选中的下拉列表值传递给后端,使用循环数组的方法根据值获取品牌id

   $(document).ready(function(){

var car1=$("#list1 option:selected").val();

$.ajax({

type:"post",

url:"{:U('Home/Car/car1')}",

data:"car1="+car1,

success:function(html){

if(html){

// alert(html);

$("#list2").html(html);

}

}

});

});

  获取id输出模型数据,后端代码:

  //得到品牌的名称

$car1=I('post.car1');

...............................//部分curl省略

$json1=json_decode($output,true);

$result = $json1['result'];

foreach($result as $a){

foreach($a as $b){

if($b==$car1){

//此处的$id1是要传递给url的

$id1=$a['id'];

}

}

}

..............................//再次进行curl操作,根据id得到所有的车型信息

$json2=json_decode($rs2,true);

$result2 = $json2['result'];

dump($result2);

//将型号的数组数据保存至session中,在型号的下拉列表中根据型号值遍历数组得到型号id

session("result2",$result2);

foreach($result2 as $val){

echo $str1=''."".'';

foreach($val['list'] as $v) {

$str1=''.$v['name'].'';

echo $str1;

}

}

  上面的方法是对的,为什么不直接在session中保存id,因为前端ajax动态选择模型名,直接在一个控制器中的方法并没有得到用户选择的模型

  根据模型选择样式的ajax代码和上面类似,然后还是遍历。遍历session中保存的数组获取model id,然后根据id获取style的数组数据,输出html

  通过上面的方法类推,整个demo就完成了

  以下是使用 CURL 的规则:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线