引言

这篇文章是我以前在一个论坛里写的,今天把这篇文章转移到这里。
文章主要介绍了如何模拟一个网站的登录。
这里使用的辅助工具是按键精灵,编程语言类似于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方式用户模拟登录网站相关推荐

  1. 【CURL】模拟登录网站并获取用户信息

    模拟登录网站并获取用户信息 前言 这次来做的是通过代码的方式,模拟登录秒拍官网,获取登录用户的信息. 前后端分离 本文的标题是CURL,传统的网站是PHP代码直接渲染项目视图,通过表单提交到控制器直接 ...

  2. python模拟登录网站_Python爬虫实战之(四)| 模拟登录京东商城

    作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 前两篇和大家分享了爬虫中http的一些概念和使用方法,基础篇我们主要介绍了http的请求头,高级篇我们主要介绍了co ...

  3. python模拟登录网站_用python实现模拟登录人人网

    我决定从头说起.懂的人可以快速略过前面理论看最后几张图. web基础知识 从OSI参考模型(从低到高:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)来说,我们的互联网属于应用层.从TCP ...

  4. python模拟登录网站_Python爬虫之模拟登录wechat

    不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一起.既然它这么重要,如果我们可以利用爬虫模拟登录,是不是就意味着我们可以获取这些信息 ...

  5. 利用phantomjs模拟登录网站(帐号登陆)

    首先我们就以CSDN博客的登录为例,这里的登陆账号和密码,读者可以使用自己的,只要将登录帐号和密码修改一下就可以登录并抓取网页数据下来了,首先我们利用eclipse创建一个java工程,主要是用来调用 ...

  6. python模拟登录网站_Python模拟登录淘宝都实现了,你还怕模拟登录?

    文章转载自公众号 :裸睡的猪 , 作者 猪哥66 最近想爬取淘宝的一些商品,但是发现如果要使用搜索等一些功能时基本都需要登录,所以就想出一篇模拟登录淘宝的文章! 看了下网上有很多关于模拟登录淘宝,但是 ...

  7. python模拟登录网站(带图形验证码)

    往期回顾:上一次说了 python模拟登录不带验证码的网站,现在来说说如果带验证码的网站怎么办 验证码也是一种反爬机制,如果登陆地方存在验证码我们有两种思路对验证码进行识别 肉眼识别,即我们将验证码下 ...

  8. JSoup模拟登录网站(以校园内网为例)

    我们先给出登录界面以及界面的URL: URL:https://webvpn.ncepu.edu.cn/users/sign_in 主要步骤: 填好用户名以及登录密码,按下F12,并在Elements中 ...

  9. selenium 通过chrome浏览器携带用户数据登录网站

    selenium 携带用户数据chromedriver登录网站 1.在chrome浏览器数据Chrome://versin 会得到本地谷歌用户数据:如图 2.启动chromeDriver需要添加use ...

最新文章

  1. 程序员的自我修养--链接、装载与库笔记:Linux共享库的组织
  2. 极客新闻——04、WiFi万能钥匙万玉权:管理应该是“自下而上”
  3. 底部导航栏的几种实现方式
  4. J2EE的13个规范总结
  5. Spring Cloud Alibaba:Sentinel 流控规则
  6. 【项目管理】项目进度管理的关键路径
  7. 6.FreeRTOS学习笔记-信号量
  8. 链表的常见操作(转)
  9. Python内置函数max()高级用法
  10. 南工程c语言实验报告,Linux环境下-C语言编程实验报告(1)(总4页).doc
  11. 【Linux开发】Ubuntu下几个软件的配置记录backup
  12. 论文格式排版技巧(word版)
  13. 中科院计算机所沈阳待遇怎么样,中科院沈阳计算技术研究所计算机技术怎么样...
  14. 自动化运维---playbook(应用变量)
  15. C语言URL解析器(代码分享)
  16. 【搞定CAD】键盘“组合键”应用小技巧
  17. 电子合同可以被打印出来吗
  18. 循环神经网络 - 卷积神经网络
  19. 按键消抖及原理(硬件和软件方法详解)
  20. 情感计算 - 情感倾向性分析

热门文章

  1. XML 命名空间(XML Namespaces)
  2. Eclipse3.7 Indigo 字体设置为Courier New
  3. “入洞房与度蜜月”的来历
  4. leetcode 147. 对链表进行插入排序
  5. leetcode95. 不同的二叉搜索树 II(递归)
  6. JavaScript Onclick事件解释
  7. 尼古拉斯 android_圣尼古拉斯和Alexa的访问
  8. AD库转换为KiCAD库的方法
  9. 分表后需要注意的二三事
  10. Java基础学习-Path环境变量的配置