首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 爬蟲提取淘寶/京東動態渲染商品數據:從 HttpClient 到 Selenium 方案對比

     編輯:程式設計綜合問答

核心挑戰

淘寶、京東等現代電商網站大量使用 JavaScript 動態渲染、API 簽名驗證、反爬蟲機制(字體加密、滑塊驗證、IP 限流),單純 HttpClient + 正則已難以有效提取成交記錄等核心數據。

方案演進路線

階段技術棧適用場景局限性
1. 靜態頁面HttpClient + HtmlAgilityPack/正則純 HTML、無 JS 渲染無法獲取動態數據
2. AJAX 接口直調HttpClient + 模擬 Header/Cookie/簽名找到內部 API、參數可逆向簽名算法複雜、易失效
3. 無頭瀏覽器Selenium / PuppeteerSharp / Playwright完整模擬用戶行為、繞過大部分反爬資源佔用高、速度慢、需維護驅動
4. 官方開放平台淘寶開放平台/京東開放平台 API合法合規、數據權威、穩定需企業資質、簽約、有調用配額

推薦實戰方案:Selenium + ChromeDriver

環境準備


// NuGet
Install-Package Selenium.WebDriver
Install-Package Selenium.WebDriver.ChromeDriver
Install-Package Selenium.Support

核心代碼框架


using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

var options = new ChromeOptions();
options.AddArgument("--headless");           // 無頭模式
options.AddArgument("--disable-gpu");
options.AddArgument("--no-sandbox");
options.AddArgument("--disable-dev-shm-usage");
options.AddArgument("user-agent=Mozilla/5.0 ...");  // 偽裝 UA

using (var driver = new ChromeDriver(options)) {
    driver.Navigate().GoToUrl("https://item.jd.com/123456.html");
    
    // 顯式等待關鍵元素加載
    var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    wait.Until(d => d.FindElement(By.CssSelector(".sku-name")).Displayed);
    
    // 提取數據
    string title = driver.FindElement(By.CssSelector(".sku-name")).Text;
    string price = driver.FindElement(By.CssSelector(".p-price")).Text;
    
    // 處理動態加載的評價/成交記錄
    ((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight);");
    Thread.Sleep(2000);  // 等待懶加載
    
    var comments = driver.FindElements(By.CssSelector(".comment-item"));
    foreach (var c in comments) { /* 解析 */ }
}

反反爬關鍵技巧

  • 🕐 隨機延遲:Thread.Sleep(Random.Next(1000, 3000))
  • 🔄 IP 代理池:輪換住宅代理,避免封禁
  • 🍪 Cookie 池維護:預登錄賬號,定期刷新有效 Cookie
  • 🎭 指紋偽裝:Canvas/WebGL/音頻指紋隨機化(可用 undetected-chromedriver 移植版)
  • ⌨️ 模擬人類操作:滑鼠軌跡、點擊停留、鍵盤輸入間隔

法律合規紅線

⚠️ 必須遵守:

  • robots.txt 規則
  • 《網絡安全法》、《數據安全法》、《個人信息保護法》
  • 目標網站 用戶協議/服務條款
  • 高頻訪問構成 破壞計算機信息系統罪 風險

強烈建議:走官方開放平台(淘寶聯盟/京東聯盟/多多進寶),合法獲取商品、訂單、佣金數據。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved