這是去年編寫的一個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%左右。
本文出自 “網站架構之家” 博客,請務必保留此出處 http://wangzebin.blog.51cto.com/653300/128549
本文配套源碼