《淘宝客如何提取淘宝分类主题页的所有分类?》要点:
本文介绍了淘宝客如何提取淘宝分类主题页的所有分类?,希望对您有用。如果有疑问,可以联系我们。
相关主题:淘客API和高佣转链
做淘宝客,有时需要提取淘宝分类,
也就是这个页面:淘宝主题页:https://www.taobao.com/markets/tbhome/market-list
这里分类有三级:比如“ 女装男装---潮流女装---毛衣”
每个分类有的有分类ID,有的没有,不管有没有都提取出来,并方便保存到维易PHP数据库。
这里预设的提取格式:
Array
(
[女装男装] => Array
(
[潮流女装] => Array
(
[0] => 羽绒服
[1] => 毛呢大衣
[2] => 毛衣
[3] => 冬季外套
[4] => 新品
[5] => 裤子
[6] => 连衣裙
[7] => 腔调
)
[时尚男装|5566] => Array
(
[0] => 秋冬新品
[1] => 淘特莱斯
[2] => 淘先生
[3] => 拾货
[4] => 秋冬外套
[5] => 时尚套装|50344007
[6] => 潮牌
[7] => 爸爸装|50344007
)
......
当分类有category ID时,直接用“|”连接ID,方便保存入库,比如“时尚套装|50344007”。当没有ID时,则直接是分类名,比如上面的“潮流女装”。
PHP具体代码:
$url = 'https://www.taobao.com/markets/tbhome/market-list'; $con = file_get_contents ($url); if(($pos = stripos ($con, '<div class="module-wrap category-nav-container">')) ===false){ $con = substr ($con, 0, $pos); //去掉尾部 } $conArr = explode ('data-name="home-category-list"',$con); $allCate = []; if($conArr) { array_shift($conArr); $reg = preg_quote ('<a class="category-name category-name-level1'); $cateTop = ''; foreach ($conArr as $ack=> $con1) { //1、获取 preg_match ('#'.$reg.'[^>]+>([^<]+)</a>#is', $con1, $m); if($m) $cateTop =$m[1]; else exit('没有提取到一级分类'); $splitStr = '<li class="category-list-item'; $con2Arr =explode ('<li class="category-list-item', $con1 ) ; $cate2 =$cate3 =[]; foreach ($con2Arr as $con2) { //2、提取二级分类 $pos2 = stripos ($con2, '<div class="category-items"'); $cate2Str = substr ($con2, 0 , $pos2); #preg_match ('#<a class="category\-name" href=\"([^"]+)\" [^\>]+>([^<]+)</a>#is', $con2, $c2); $cate2Tmp = getCate($cate2Str); if(empty($cate2Tmp)) continue; $cate2Tmp = $cate2Tmp[0]; //3、提取三级分类 $cate3Str = substr ($con2, $pos2); $cate2[$cate2Tmp]= getCate($cate3Str); } $allCate[$cateTop] = $cate2; //break; } } print_r ($allCate);
淘宝分类提取结果如图: