《淘寶客如何提取淘寶分類主題頁的所有分類?》要點:
本文介紹了淘寶客如何提取淘寶分類主題頁的所有分類?,希望對您有用。如果有疑問,可以聯系我們。
相關主題:淘客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);
淘寶分類提取結果如圖: