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

Delphi 實現 Web 自動發帖與驗證碼識別:WebBrowser 自動化與圖像處理實戰

     編輯:Delphi

前言

本文記錄一個 Delphi 7 實戰項目:針對某遊戲點卡交易網站,實現多交易區自動發帖,核心難點在於破解 4 位數字驗證碼(含干擾色、噪點、字符粘連、旋轉)。方案採用 WebBrowser 自動化填表提交 + 客戶端圖像預處理 + 模板匹配識別,識別率約 80%。

整體架構

  1. WebBrowser 自動化:導航登錄頁 → 填寫賬號密碼 → 進入發帖頁 → 下載驗證碼圖片 → 識別 → 填入表單 → 提交。
  2. 驗證碼識別管線:灰度化 → 二值化 → 去噪 → 字符切割 → 旋轉校正 → 模板匹配 → 輸出字符串。

關鍵技術實現

1. WebBrowser 表單自動填寫與提交

var o: OleVariant;
try
  o := EmbeddedWB1.OleObject.Document.all.item('btnok', 0); {按 ID 獲取按鈕}
  o.Click; {觸發點擊}
except
  txtError.Caption := '未發現提交按鈕';
end;

同理可對 input、textarea、select 賦值 .value。

2. 驗證碼圖片預處理流程

圖片處理流程圖

  • 灰度化:Gray = 0.299*R + 0.587*G + 0.114*B
  • 自適應二值化:根據局部均值動態閾值,保留字筆。
  • 去噪:8 鄰域連通分量面積過濾,移除孤立噪點。
  • 投影切割:垂直投影找波谷分割單字符(粘連字符需結合水平投影二次切割)。
  • 旋轉校正:霍夫變換或最小外接矩形角度估計,反向旋轉歸正。

3. 模板匹配識別

識別模擬過程

  • 建立 0-9 十個標準字符模板(二值圖,統一尺寸 16×20)。
  • 待識字符與各模板計算 相似度:Sim = (匹配像素數) / (總像素數) 或 NCC (歸一化互相關)。
  • 取相似度最高者為識別結果,閾值過濾低置信度。

4. 複雜場景擴展建議

  • 字母/漢字:模板庫擴充至 62/數千,匹配開銷大增,建議引入 KNN/SVM/CNN 分類器。
  • 干擾線/曲線:形態學開運算斷開細線,或深度學習語義分割分離字符區域。
  • 端到端識別:CRNN (CNN+RNN+CTC) 直接序列輸出,無需切割,現代首選方案。

完整項目結構

  • UnitMain.pas:主邏輯,WebBrowser 事件鏈、定時器輪詢狀態。
  • UnitCaptcha.pas:圖像處理類(TCaptchaRecognizer),封裝預處理、切割、匹配。
  • Templates/:10 個 BMP 模板文件。
  • Project1.dpr:啟動項目。

源碼獲取

完整源碼已打包上傳資源區,可免積分下載(Delphi 7 專案)。

法律與道德聲明

本代碼僅供技術交流學習,嚴禁用於惡意灌水、刷單、破解驗證碼牟利等違法行為。請遵守目標網站 robots.txt 與服務條款。

總結

結合 WebBrowser 自動化與傳統圖像處理,可在較短時間內實現針對性驗證碼破解。對於通用驗證碼識別,深度學習(CRNN、YOLO+CRNN)已成主流,建議後續學習方向。

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