按键 使用WinHttp实现POST方式用户模拟登录网站
生活随笔
收集整理的這篇文章主要介紹了
按键 使用WinHttp实现POST方式用户模拟登录网站
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引言
這篇文章是我以前在一個論壇里寫的,今天把這篇文章轉移到這里。
文章主要介紹了如何模擬一個網站的登錄。
這里使用的輔助工具是按鍵精靈,編程語言類似于VB。
實現步驟
第一步,獲取登錄地址
打開登錄界面:
打開調試工具,點擊登錄按鈕,查看數據信息:
從調試工具中可以看到實際登錄地址和需要提交的參數。
第二步,獲取驗證碼地址
第三步,在瀏覽器中正常登錄,查看登錄成功和失敗后返回的信息(方便后邊進行判斷是否登錄成功)
登錄失敗顯示信息:
登錄成功顯示:
第四步,開始制作
首先設計界面:
代碼實現:
'名稱:使用WinHttp實現POST方式用戶模擬登錄網站 '按鍵ID:383810086wa 'E-mail:383810086@qq.com '時間:2015.6.13 '-------------------------------------------'======相關數據信息======================================================= url_login = "http://xxx.com/login.php?action=login" '網站后臺登錄地址 | url_verify = "http://xxx.com/yzm.php" '網站驗證碼地址 | ' | form_user = "xxxxxxxxxxx" '網站用戶名 | form_passwd = "xxxxxxxxx" '網站用戶密碼 | '========================================================================'獲取網站cookie Form1.InputBox_debug.Text = "正在獲取Cookie..." & vbCrlf '用于在界面上顯示運行信息 Dim cookie Set ObjWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1") With ObjWinHttp.SetTimeouts 0,0,0,0.Open "GET", url_login, False.SetRequestHeader "Content-Type","application/x-www-form-urlencoded".Sendcookie = .getResponseHeader("Set-Cookie") End With Form1.InputBox_cookie.Text = cookie '將cookie寫入界面中的InputBox_cookie輸入框,方便查看和讀取 Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "獲取cookie完成" & vbCrlf'獲取網站驗證碼 Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "正在獲取驗證碼..." & vbCrlf Dim verify_bit '定義驗證碼字節集 With ObjWinHttp.SetTimeouts 0,0,0,0.Open "GET", url_verify, False.SetRequestHeader "Content-Type","application/x-www-form-urlencoded".SetRequestHeader "Cookie", cookie '提交cookie.Send verify_bit = .ResponseBody End With Set ObjStream = CreateObject("Adodb.Stream") With ObjStream.Type = 1.Mode = 3.Open.Write verify_bit '寫入驗證碼字節集.SaveToFile ".\verify.jpg",2 '將驗證碼保存為本地圖片.Close End With Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "獲取驗證碼成功" & vbCrlf'手動驗證驗證碼 Form1.PictureBox_Verify.Picture = ".\verify.jpg" '在界面中顯示驗證碼 Form1.Button_Verify.Visible = True '顯示“確認驗證碼”按鈕 Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "請輸入驗證碼" & vbCrlf MessageBox "請輸入驗證碼"Dimenv IsVerifyDone '定義是否已填入驗證碼 Dim checknum '定義接收驗證碼變量IsVerifyDone = False '默認 沒有輸入驗證碼Do '用于檢測是否輸入完成驗證碼If IsVerifyDone Then Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "驗證碼已輸入" & vbCrlfchecknum = Form1.InputBox_Verify.TextExit Do End IfDelay 100 Loop'進行網站用戶登錄 Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "進行登錄..." & vbCrlf Dim login_data '定義用戶登錄數據 Dim html_bit '定義登錄頁面返回字節集login_data = "username=" & form_user & "&password=" & form_passwd & "&checknum=" & checknum With ObjWinHttp.SetTimeouts 0,0,0,0.Open "POST", url_login, False.SetRequestHeader "Content-Type","application/x-www-form-urlencoded".SetRequestHeader "Cookie", cookie '提交cookie.SetRequestHeader "Content-Length", Len(login_data) '提交數據長度.Send login_data '數據提交html_bit = .ResponseBody End With With ObjStream.Type = 1.Mode = 3.Open.Write html_bit.Position = 0.Type = 2.Charset = "UTF-8" .Close End WithSet ObjWinHttp = Nothing Set ObjStream = NothingIf Instr(1, ObjStream.ReadText, "成功", 1) > 0 Then '驗證登錄后,網站頁面返回的數據,查看是否登錄成功Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "登錄成功!" & vbCrlfMessageBox "登錄成功!" Else Form1.InputBox_debug.Text = Form1.InputBox_debug.Text & "登錄失敗!請檢測驗證碼、用戶名、密碼是否正確!" & vbCrlfMessageBox "登錄失敗!請檢測 用戶名、密碼、驗證碼 是否填寫正確!" End If調試結果:
博客名稱:王樂平博客
博客地址:http://blog.lepingde.com
CSDN博客地址:http://blog.csdn.net/lecepin
總結
以上是生活随笔為你收集整理的按键 使用WinHttp实现POST方式用户模拟登录网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运维服务器信息收集
- 下一篇: 如何将EDM营销与多渠道推广方式相结合