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