<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    利用 PHP 爬蟲獲取淘寶商品 SKU 詳細信息

    管理 管理 編輯 刪除

    在電商平臺上,SKU(Stock Keeping Unit)是商品庫存進出計量的基本單元。對于淘寶商品來說,SKU 信息通常包括不同的規格、價格、庫存等詳細信息。通過 PHP 爬蟲技術,我們可以獲取淘寶商品的 SKU 詳細信息,從而更好地分析商品數據或進行其他業務操作。以下將詳細介紹如何使用 PHP 實現這一功能。

    一、準備工作

    1. 安裝必要的 PHP 擴展

    確保你的 PHP 環境中已經安裝了 cURL 擴展,用于發起 HTTP 請求。此外,還需要安裝 DOMDocument 和 DOMXPath 擴展,用于解析 HTML。

    2. 了解淘寶商品頁面結構

    通過瀏覽器的開發者工具(按 F12 打開)查看淘寶商品詳情頁的 HTML 結構,找到 SKU 信息所在的標簽和類名。通常,SKU 信息可能包含在 <div> 或 <ul> 標簽中。

    二、PHP 爬蟲代碼實現

    以下是使用 PHP 實現獲取淘寶商品 SKU 詳細信息的代碼示例。

    1. 發起請求

    使用 cURL 向淘寶商品詳情頁發起請求,并獲取頁面的 HTML 內容。

    php


    <?php
    function get_page($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
        $html = curl_exec($ch);
        curl_close($ch);
        return $html;
    }
    ?>

    2. 解析 HTML

    使用 DOMDocument 和 DOMXPath 解析獲取到的 HTML 內容,并提取 SKU 詳細信息。

    php


    <?php
    function parse_sku_details($html) {
        $doc = new DOMDocument();
        @$doc->loadHTML($html); // 使用 @ 抑制警告
        $xpath = new DOMXPath($doc);
    
        // 假設 SKU 信息在特定的類名中
        $sku_list = $xpath->query("http://ul[@class='sku-list']//li");
    
        $sku_details = [];
        foreach ($sku_list as $sku) {
            $sku_name = $xpath->query(".//span[@class='sku-name']", $sku)->item(0)->nodeValue;
            $sku_price = $xpath->query(".//span[@class='sku-price']", $sku)->item(0)->nodeValue;
            $sku_stock = $xpath->query(".//span[@class='sku-stock']", $sku)->item(0)->nodeValue;
    
            $sku_details[] = [
                'name' => $sku_name,
                'price' => $sku_price,
                'stock' => $sku_stock
            ];
        }
    
        return $sku_details;
    }
    ?>

    3. 獲取并解析 SKU 信息

    將上述兩個函數組合起來,實現獲取并解析 SKU 信息的功能。

    php


    <?php
    function get_sku_details($product_url) {
        $html = get_page($product_url);
        if ($html) {
            $sku_details = parse_sku_details($html);
            return $sku_details;
        } else {
            echo "請求失敗,請檢查網絡或商品鏈接。\n";
            return [];
        }
    }
    
    function display_sku_details($sku_details) {
        if (empty($sku_details)) {
            echo "未找到 SKU 信息。\n";
            return;
        }
    
        foreach ($sku_details as $sku) {
            echo "SKU 名稱: " . $sku['name'] . "\n";
            echo "SKU 價格: " . $sku['price'] . "\n";
            echo "SKU 庫存: " . $sku['stock'] . "\n";
            echo "------------------------\n";
        }
    }
    ?>

    4. 主程序

    在主程序中調用上述函數,獲取并展示 SKU 信息。

    php


    <?php
    if (__FILE__ == __FILE__) {
        $product_url = readline("請輸入淘寶商品鏈接:");
        $sku_details = get_sku_details($product_url);
        display_sku_details($sku_details);
    }
    ?>

    三、完整代碼示例

    將上述代碼片段組合起來,形成一個完整的 PHP 腳本:

    php


    <?php
    function get_page($url) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3');
        $html = curl_exec($ch);
        curl_close($ch);
        return $html;
    }
    
    function parse_sku_details($html) {
        $doc = new DOMDocument();
        @$doc->loadHTML($html);
        $xpath = new DOMXPath($doc);
    
        $sku_list = $xpath->query("http://ul[@class='sku-list']//li");
        $sku_details = [];
    
        foreach ($sku_list as $sku) {
            $sku_name = $xpath->query(".//span[@class='sku-name']", $sku)->item(0)->nodeValue;
            $sku_price = $xpath->query(".//span[@class='sku-price']", $sku)->item(0)->nodeValue;
            $sku_stock = $xpath->query(".//span[@class='sku-stock']", $sku)->item(0)->nodeValue;
    
            $sku_details[] = [
                'name' => $sku_name,
                'price' => $sku_price,
                'stock' => $sku_stock
            ];
        }
    
        return $sku_details;
    }
    
    function get_sku_details($product_url) {
        $html = get_page($product_url);
        if ($html) {
            $sku_details = parse_sku_details($html);
            return $sku_details;
        } else {
            echo "請求失敗,請檢查網絡或商品鏈接。\n";
            return [];
        }
    }
    
    function display_sku_details($sku_details) {
        if (empty($sku_details)) {
            echo "未找到 SKU 信息。\n";
            return;
        }
    
        foreach ($sku_details as $sku) {
            echo "SKU 名稱: " . $sku['name'] . "\n";
            echo "SKU 價格: " . $sku['price'] . "\n";
            echo "SKU 庫存: " . $sku['stock'] . "\n";
            echo "------------------------\n";
        }
    }
    
    if (__FILE__ == __FILE__) {
        $product_url = readline("請輸入淘寶商品鏈接:");
        $sku_details = get_sku_details($product_url);
        display_sku_details($sku_details);
    }
    ?>

    四、代碼解釋

    1. get_page 函數:使用 cURL 發起 HTTP 請求,獲取目標頁面的 HTML 內容。設置了 User-Agent,以模擬瀏覽器行為,避免被淘寶識別為爬蟲。
    2. parse_sku_details 函數:使用 DOMDocument 加載 HTML 內容。使用 DOMXPath 查詢 SKU 信息所在的 HTML 元素。提取 SKU 的名稱、價格和庫存等信息,并存儲到數組中。
    3. get_sku_details 函數:調用 get_page 函數獲取頁面 HTML。調用 parse_sku_details 函數解析 SKU 信息。
    4. display_sku_details 函數:遍歷 SKU 信息數組,并打印每個 SKU 的詳細信息。

    五、注意事項

    1. 反爬機制:淘寶可能會對爬蟲進行限制,例如限制 IP 訪問頻率、檢測異常請求等。如果遇到這種情況,可以嘗試以下方法:使用代理服務器(如代理 IP 池)。增加請求間隔時間(使用 sleep())。模擬更多瀏覽器行為(如設置更多請求頭)。
    2. 動態加載內容:淘寶的部分內容可能是通過 JavaScript 動態加載的。如果發現 cURL 獲取到的 HTML 內容中缺少某些數據,可以考慮使用 Selenium(PHP 版本)來模擬瀏覽器操作。
    3. 數據存儲:如果需要將爬取到的 SKU 數據存儲起來,可以將其保存到文件(如 CSV、JSON)或數據庫中。

    六、示例輸出

    假設輸入的淘寶商品鏈接是某個具體商品的頁面,運行程序后可能輸出如下:

    復制


    請輸入淘寶商品鏈接:https://detail.tmall.com/item.htm?id=1234567890
    SKU 名稱: 顏色:紅色
    SKU 價格: ¥5499.00
    SKU 庫存: 100
    ------------------------
    SKU 名稱: 顏色:黑色
    SKU 價格: ¥5499.00
    SKU 庫存: 150
    ------------------------
    ...
    通過上述步驟和代碼,你可以使用 PHP 實現獲取淘寶商品 SKU 詳細信息的功能。希望這個示例對你有所幫助!


    請登錄后查看

    one-Jason 最后編輯于2025-04-07 16:09:48

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    444
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服