Delphi實現自動發貼和識別驗證碼 王澤賓

  這是去年編寫的一個delphi小程序,當時有個寧波的朋友讓我幫他寫個軟件,要求以下:可以在xxxx網站上的各個交易區,實現自動發帖。
xxxx是一個遊戲點卡交易站點,他們按照省份進行劃分交易區域,信息發佈者每次只能在一個省份發佈信息。固然可能他們也是出於某種目的,好比防止信息氾濫。發佈者發佈信息的頁面都有一個圖形驗證碼,只有填寫正確的驗證碼才能完成整個流程。
當時他是一直用着,如今是否還在用不得而知了,把這段代碼放出來純粹是與你們交流學習,不要做惡。
登陸網站,自動填寫網頁數據,並提交,這樣的功能比較簡單,我想你們也都會,我就隨便舉個例子:
  首先,在form上嵌入一個標準的webbrowser控件(程序中使用了另外一個webbrowser控件,但能夠互換),navigate一個url,而後經過ole對象訪問便可。
  好比頁面上有個id爲btnok的按鈕,那麼能夠這樣訪問:
  try
    o := EmbeddedWB1.OleObject.document.all.item('btnok',0);
    o.click;
  except
    txtError.caption := '當前頁面未發現<確認提交>的輸入位置,請覈對!';
  end;
  複雜一點的地方主要是驗證碼的識別部分:
  多虧這個網站的驗證碼圖片比較簡單,4個字符組成,雖然有干擾色,有噪點,有字符粘聯,並帶必定旋轉,但只有數字,沒有字母和漢字,不然麻煩大了,得作個完整的ocr系統。
  圖片處理流程以下:
 

  識別模擬過程以下:
 
  對比類似度是識別的難點,我這裏因爲圖片比較簡單,因此比較省力。對於比較複雜的圖片識別,你能夠創建數學模型,將圖片和模板作成矩陣,依照矩陣變換和旋轉進行類似度的比較,感興趣的哥們能夠更深刻的瞭解。     源碼我把它放到資源裏面去,你們能夠免分下載。各位見笑了,dephi7編寫,當時的識別率差很少80%左右。
相關文章
相關標籤/搜索