目的
竞争对手分析,了解淘宝装修市场上线了多少无线模板设计师
步骤
- 找到目标页面
https://zxn.taobao.com/wei_template_list.htm?p=1
至
https://zxn.taobao.com/wei_template_list.htm?p=870
- 取出html源文件
$html = file_get_contents("https://zxn.taobao.com/wei_template_list.htm?p=$i");
- 利用正则来解析html
$start = "\/\/zxn.taobao.com\/designer_detail\.htm\?designerId=";
$end = "\">";
preg_match_all("/$start(\d+)$end/", $html, $matches);
取matches[1]得到设计师的id号
array(20) {
[0]=>
string(7) "1038354"
[1]=>
string(7) "1029480"
[2]=>
string(7) "1036438"
[3]=>
string(5) "14040"
...
[18]=>
string(7) "1033337"
[19]=>
string(5) "75477"
}
- 遍历分页迭加得所有的设计id号数组
4.1 先声明一个空数组用来不加的merge用
$designer_id_array = [];
4.2 然后在循环体中合并数组
for ($i = 1; $i <= $page ; $i++) {
$designer_id_array = array_merge($designer_id_array, $matches[1]);
}
4.3 让$page=2验证结果
array(40) {
[0]=>
string(7) "1038354"
[1]=>
string(7) "1029480"
[2]=>
string(7) "1036438"
[39]=>
string(5) "40890"
}
- 对数组元素去重复
array_unique($designer_id_array)
- sizeof()求数组长度
echo '无线设计师人数为:' . sizeof($designer_id_array);
大功告成
代码没多讲究,只为实现我自己要的功能。
网友评论