您的位置:首页 > 编程语言 > PHP开发

PHP+正则抓取淘宝装修市场设计师数据

2017-05-31 00:00 246 查看
摘要: 意图了解那17451个无线模板都是哪些人做的

目的

竞争对手分析,了解淘宝装修市场上线了多少无线模板设计师

步骤

找到目标页面

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);

大功告成

代码没多讲究,只为实现我自己要的功能。

下载地址:https://git.oschina.net/laeser/spider
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息