京東手機每日秒殺頁面商品秒殺,人工刷新效率低。本專案實作自動化監控:
Main (Miaosha360buy)
└─ 循環每 60 秒
└─ ThreadOne360buy (工作執行緒)
├─ Jsoup 解析秒殺頁面 → 取得商品 URL 陣列
├─ 遍歷各商品
│ ├─ 解析 fittingInfo API → 價格、SKU、折扣
│ ├─ 解析商品頁面 → skuidkey
│ ├─ 呼叫 StockHandler API → 庫存狀態
│ └─ 滿足價格/庫存條件 → Runtime.exec("chrome url")
└─ CountDownLatch 回報主執行緒
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();
}
}
}
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=無貨)。
public class OpenCmd {
public static void openWinExe(String cmd, String url) {
if (cmd == null) cmd = "chrome " + url;
Runtime.getRuntime().exec(cmd);
}
}
需將 chrome.exe 加入系統 PATH,或在程式碼指定完整路徑。
chrome 指令可用,或修改 OpenCmd 寫死路徑。filter() 內硬編碼 setPrice(499f) 等,需依目標商品調整。hasStore() 中 cityid=2800&areaid=2850 需改為實際收貨地址(可從瀏覽器開發者工具抓取)。秒殺屬於限量促銷,自動化搶購可能違反平台服務條款,請僅用於技術學習,**勿用於黃牛倒貨或擾亂正常交易秩序**。