首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實作京東秒殺監控:定時抓取商品、解析價格庫存、自動開啟瀏覽器下單

     編輯:Java 相關知識

專案背景

京東手機每日秒殺頁面商品秒殺,人工刷新效率低。本專案實作自動化監控:

  1. 每分鐘抓取秒殺頁面商品連結。
  2. 呼叫後台 API 獲取價格、折扣、庫存。
  3. 符合條件自動啟動 Chrome 開啟商品頁面搶購。

架構流程


Main (Miaosha360buy)
  └─ 循環每 60 秒
        └─ ThreadOne360buy (工作執行緒)
              ├─ Jsoup 解析秒殺頁面 → 取得商品 URL 陣列
              ├─ 遍歷各商品
              │    ├─ 解析 fittingInfo API → 價格、SKU、折扣
              │    ├─ 解析商品頁面 → skuidkey
              │    ├─ 呼叫 StockHandler API → 庫存狀態
              │    └─ 滿足價格/庫存條件 → Runtime.exec("chrome url")
              └─ CountDownLatch 回報主執行緒

核心模組說明

1. 入口主類別


public class Miaosha360buy {
    CountDownLatch latch = new CountDownLatch(1);
    public static void main(String[] args) {
        new ThreadOne360buy(latch).start();
        while (true) {
            latch.await();
            Thread.sleep(60_000);
            latch = new CountDownLatch(1);
            new ThreadOne360buy(latch).start();
        }
    }
}

2. 工作執行緒

  • getMessage(url):Jsoup 選擇器 map[name=Map] > area[href~=product] 抓商品連結。
  • parseProduct(doc):正則 + Unicode 解碼解析 JSON 片段獲取 price、skuid。
  • filter(map, url):硬編碼 SKU 價格閾值(需部署前手動調整),符合則 Runtime.exec("chrome " + url)。
  • hasStore(skuidkey):呼叫 price.360buy.com/stocksoa/StockHandler.ashx 解析庫存代碼(33/5=現貨,34/18=無貨)。

3. 瀏覽器啟動工具


public class OpenCmd {
    public static void openWinExe(String cmd, String url) {
        if (cmd == null) cmd = "chrome " + url;
        Runtime.getRuntime().exec(cmd);
    }
}

需將 chrome.exe 加入系統 PATH,或在程式碼指定完整路徑。

部署前必改配置

  1. Chrome 路徑:確保 chrome 指令可用,或修改 OpenCmd 寫死路徑。
  2. 商品價格閾值:filter() 內硬編碼 setPrice(499f) 等,需依目標商品調整。
  3. 地區參數:hasStore() 中 cityid=2800&areaid=2850 需改為實際收貨地址(可從瀏覽器開發者工具抓取)。

已知限制與風險

  • 僅自動開啟頁面,**登入、提交訂單仍需人工操作**。
  • 京東介面/API 隨時可能變更,選擇器與參數需持續維護。
  • 高頻請求可能觸發風控 IP 封禁,建議加入隨機延遲與代理池。
  • 程式碼結構較鬆散,建議重構為 Spring Boot + 排程器 + 設定檔外部化。

法律與道德提醒

秒殺屬於限量促銷,自動化搶購可能違反平台服務條款,請僅用於技術學習,**勿用於黃牛倒貨或擾亂正常交易秩序**。

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