近期有同學反映課程要求觀看指定網頁視頻以增加瀏覽量,且每個班級有名額限制。經測試發現,點贊按鈕需在觀看視頻 18 秒後才會彈出。身為計算機專業學生,手動重複點擊顯然不符合程式設計師「自動化」的追求,於是決定從技術角度分析並實現自動化腳本。
通過查看頁面源代碼,發現點贊彈窗由 class="video_mask" 的 div 控制,預設 display: none 隱藏。18 秒後通過 JavaScript 修改樣式顯示。點擊「喜歡」觸發 ok(),點擊「不喜歡」觸發 nook(),兩者最終均調用 lookHandle(type) 函數,參數 type=1 代表喜歡,type=2 代表不喜歡。
lookHandle 發送 POST 請求,數據格式為 JSON,核心參數包括 code、type、videoId。服務端根據 type 更新數據庫:喜歡數 +1、瀏覽量 +1。經驗證:喜歡數 + 不喜歡數 = 總瀏覽量,說明瀏覽量統計邏輯就在該接口中。
請求成功後,服務端將用戶操作記錄至 Session,防止重複計數。但若繞過前端直接構造請求,即可實現無限刷量。
在 MyEclipse 中新建 Web 項目,於 index.jsp 引入原始 AJAX 代碼並修改:
lookHandle 參數,內部固定 var type = 1(始終點贊)videoId 為目標視頻 IDcode 及服務端返回數據頁面放置一個按鈕綁定 onclick="lookHandle()",點擊測試 10 次,瀏覽量與點贊數均增加 10,驗證成功。
為解放雙手,在 lookHandle 內部遞歸調用自身,無終止條件,需手動關閉頁面停止。執行後數據呈指數級增長:1 → 10 → 100 → 1000…
function lookHandle() {
var type = 1;
var videoId = "目標視頻ID";
$.ajax({
url: "/video/lookHandle",
type: "POST",
dataType: "json",
data: {type: type, videoId: videoId},
success: function(data) {
lookHandle(); // 遞歸調用
}
});
}
本文僅從技術原理角度分析前後端交互及自動化實現,嚴禁用於實際刷量行為,這類行為違反平台服務條款,可能構成計算機信息系統破壞罪。開發者應專注於合法的壓力測試、性能優化等正當場景。
