《淘宝客如何提取淘宝分类主题页的所有分类?》要点:
本文介绍了淘宝客如何提取淘宝分类主题页的所有分类?,希望对您有用。如果有疑问,可以联系我们。
			           
相关主题:淘客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);淘宝分类提取结果如图:
