從淘寶分類頁面 https://list.taobao.com/browse/cat-0.htm 解析所有頂層分類的 cat 參數 ID 與中文名稱。
$url = 'https://list.taobao.com/browse/cat-0.htm';
$html = file_get_contents($url); // 需 allow_url_fopen=On
// 淘寶頁面編碼為 GB2312/GBK,轉 UTF-8 供正則處理
$html = mb_convert_encoding($html, 'UTF-8', 'GB2312');
// 正則匹配分類連結:分類名
$pattern = '/]*>(.*?)<\/a>/is';
preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);
$categories = [];
foreach ($matches as $m) {
$catId = $m[1];
$name = trim(strip_tags($m[2]));
if ($name !== '') {
$categories[$catId] = $name;
}
}
// 輸出
foreach ($categories as $id => $name) {
echo "$id => $name\n";
}
function fetchTaobaoCategories(): array {
$url = 'https://list.taobao.com/browse/cat-0.htm';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
CURLOPT_REFERER => 'https://www.taobao.com/',
CURLOPT_TIMEOUT => 15,
CURLOPT_COOKIEJAR => '', // 記憶體 Cookie
CURLOPT_ENCODING => 'gzip, deflate', // 自動解壓
]);
$html = curl_exec($ch);
if ($html === false) {
throw new RuntimeException('cURL error: ' . curl_error($ch));
}
curl_close($ch);
// 編碼轉換
$html = mb_convert_encoding($html, 'UTF-8', 'GB2312');
// 更精確正則:針對分類列表結構
$pattern = '/]*>(.*?)<\/a>/is';
preg_match_all($pattern, $html, $matches, PREG_SET_ORDER);
$result = [];
foreach ($matches as $m) {
$id = $m[1];
$name = trim(strip_tags($m[2]));
if ($name && !isset($result[$id])) {
$result[$id] = $name;
}
}
return $result;
}
print_r(fetchTaobaoCategories());
| 策略 | 實作 |
|---|---|
| User-Agent 輪換 | 維護真實瀏覽器 UA 池,隨機選取 |
| IP 代理池 | 付費住宅代理/資料中心代理,請求間隔隨機 2-5 秒 |
| Cookie 維持 | 首次請求取得 Cookie,後續請求攜帶 |
| Headless 瀏覽器 | Puppeteer/Playwright/Selenium 渲染 JS 生成內容 |
| 頻率控制 | Token Bucket / Leaky Bucket 限流,單 IP 每分鐘 < 30 次 |
| 驗證碼識別 | 遇到滑塊/點選驗證碼,接入打碼平台或人工介入 |
taobao_categories (cat_id, name, parent_id, level, updated_at)。爬蟲須遵守 robots.txt、網站服務條款、資料使用授權。淘寶/天貓嚴禁未授權爬取,商業用途請申請官方開放平台 API(需企業認證、簽約)。本文僅供技術研究參考。
透過 cURL 模擬瀏覽器請求、GB2312 轉 UTF-8、精確正則解析,可獲取淘寶分類 ID 對照表。生產環境需配合代理池、頻率控制、Headless 渲染、合規審查。建議優先申請官方 API,穩定且合法。