vb.net 2005实现自动登陆网页
2012-02-22 16:20
302 查看
用的平台是VB.net 2005,刚开始用的时候,这方面的资料极少。多数是vb跟v.net2003的资料。新版的vb加入了面向对象的思想。嘻嘻,赶潮流在程序里面用了。
如果你想做一个类似自动登陆的软件,那么下面说的东西就有些许的帮助了。首先添加一个webbrowser控件,这个控件功能很丰富,而我仅碰到了些皮毛。
假设你需要登陆一个网站,网站超简化的html代码如下:
<TD align=right>帐号:</TD>
<TD width=140><INPUT class="text" name=username > </TD
<TD align=right>密码:</TD>
<TD><INPUT class="text" name=passwd type=password value=""> </TD>
<TD><INPUT class="za_button" name=submit1 type=submit value=确定> </TD>
看到了相应的标签没有?username需要输入你的用户名,而passwd需要输入你的密码。注意,实际使用的是name属性。输入完成后,要触发“确定”按钮。在vb.net中要如何实现自动登陆功能呢?很简单,只要几个语句就可以完成。
Dim log As HtmlWindow = Me.MainBrowser.Document ' 登陆窗口所在帧
' 填写用户名密码,并触发确定按钮, 使用name属性
log.Document.All("username").SetAttribute("value", username)
log.Document.All("passwd").SetAttribute("value", passwd)
log.Document.All("submit1").InvokeMember("click")
这里我们用SetAttribute来设置文本框的“value”属性,用InvokeMember来调用了按钮的“click”方法。因为不同的Html元素,其拥有的属性和方法也不尽相同,所以.Net 2.0提供了统一的HtmlElement来概括各种Html元素的同时,提供了这两个方法以调用元素特有的功能。关于各种Html元素的属性和方法一览,可以查阅MSDN。
下面以登陆baidu,然后搜索某个关键词为例,给出简单的完整程序。
先来看看baidu的几行关键html代码:
<form name=f action=http://www.baidu.com/s><input type=text name=wd class="ff" size=35 maxlength=100><input type=hidden name=cl value=3> <input type=submit value=百度搜索>
我故意把form包含进来了,因为有的网站含有form,有的甚至包含frame,如果你不指定是哪个form或者哪个frame(比如form(1),frame(2))等,就找不到相应的标签。当初小弟也找了好久。
第二个需要注意的问题是“百度搜索”那个按钮没有name属性,怎么办?type跟ID一样可以,原理是类似的。
第三个问题可能初学者会忽略,在document下载完成的时候,要做一个小小的技术处理。加入不包含case语句或者类似的处理的话,网页会不断的加载,不断的搜索同样的东西。具体试试就清楚怎么回事了。
下面看看具体实现(需要添加一个webbrower控件):
Public Class Form1
Dim time As Integer = 0
' 登陆网站
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WebBrowser1.Navigate("http://www.baidu.com")
End Sub
' 网站加载完成后的事件
' 注意这里仅在第一次加载完成后进行处理
' 可以试试去掉case操作,看看结果如何
Private Sub wBrowser_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Select Case time
Case 0
' wd为baidu中输入搜索内容的标志,注意搜索按钮触发的方法
Me.WebBrowser1.Document.All("wd").SetAttribute("value", "你想搜索的文字")
Me.WebBrowser1.Document.Forms(0).InvokeMember("submit")
time += 1
End Select
End Sub
End Class
之后大家可以拿自己的邮箱登陆网页来试试
如果你想做一个类似自动登陆的软件,那么下面说的东西就有些许的帮助了。首先添加一个webbrowser控件,这个控件功能很丰富,而我仅碰到了些皮毛。
假设你需要登陆一个网站,网站超简化的html代码如下:
<TD align=right>帐号:</TD>
<TD width=140><INPUT class="text" name=username > </TD
<TD align=right>密码:</TD>
<TD><INPUT class="text" name=passwd type=password value=""> </TD>
<TD><INPUT class="za_button" name=submit1 type=submit value=确定> </TD>
看到了相应的标签没有?username需要输入你的用户名,而passwd需要输入你的密码。注意,实际使用的是name属性。输入完成后,要触发“确定”按钮。在vb.net中要如何实现自动登陆功能呢?很简单,只要几个语句就可以完成。
Dim log As HtmlWindow = Me.MainBrowser.Document ' 登陆窗口所在帧
' 填写用户名密码,并触发确定按钮, 使用name属性
log.Document.All("username").SetAttribute("value", username)
log.Document.All("passwd").SetAttribute("value", passwd)
log.Document.All("submit1").InvokeMember("click")
这里我们用SetAttribute来设置文本框的“value”属性,用InvokeMember来调用了按钮的“click”方法。因为不同的Html元素,其拥有的属性和方法也不尽相同,所以.Net 2.0提供了统一的HtmlElement来概括各种Html元素的同时,提供了这两个方法以调用元素特有的功能。关于各种Html元素的属性和方法一览,可以查阅MSDN。
下面以登陆baidu,然后搜索某个关键词为例,给出简单的完整程序。
先来看看baidu的几行关键html代码:
<form name=f action=http://www.baidu.com/s><input type=text name=wd class="ff" size=35 maxlength=100><input type=hidden name=cl value=3> <input type=submit value=百度搜索>
我故意把form包含进来了,因为有的网站含有form,有的甚至包含frame,如果你不指定是哪个form或者哪个frame(比如form(1),frame(2))等,就找不到相应的标签。当初小弟也找了好久。
第二个需要注意的问题是“百度搜索”那个按钮没有name属性,怎么办?type跟ID一样可以,原理是类似的。
第三个问题可能初学者会忽略,在document下载完成的时候,要做一个小小的技术处理。加入不包含case语句或者类似的处理的话,网页会不断的加载,不断的搜索同样的东西。具体试试就清楚怎么回事了。
下面看看具体实现(需要添加一个webbrower控件):
Public Class Form1
Dim time As Integer = 0
' 登陆网站
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.WebBrowser1.Navigate("http://www.baidu.com")
End Sub
' 网站加载完成后的事件
' 注意这里仅在第一次加载完成后进行处理
' 可以试试去掉case操作,看看结果如何
Private Sub wBrowser_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Select Case time
Case 0
' wd为baidu中输入搜索内容的标志,注意搜索按钮触发的方法
Me.WebBrowser1.Document.All("wd").SetAttribute("value", "你想搜索的文字")
Me.WebBrowser1.Document.Forms(0).InvokeMember("submit")
time += 1
End Select
End Sub
End Class
之后大家可以拿自己的邮箱登陆网页来试试
相关文章推荐
- 第一阶段完毕-兼记vb.net 2005实现自动登陆网页
- vb.net 2005实现自动登陆网页
- (微信公众号开发《一》OAuth2.0网页授权认证获取用户的详细信息,实现自动登陆)http://blog.csdn.net/liaohaojian/article/details/70175835
- vb.net2005 网页自动填写并提交
- c# 实现网页上用户自动登陆|asp.net 模拟网站登录
- c# 实现网页上用户自动登陆|asp.net 模拟网站登录
- c# 模拟 网页实现12306登陆、自动刷票、自动抢票完全篇
- VB.NET自动实现的属性
- [转]Delphi实现网页自动登陆
- [VB.NET]请问高手如何用VB2005调用系统默认连接实现自动拨号,谢谢!
- [VB.NET]哪个大虾教我怎么实现登陆是输入验证码,用VB.NET写的
- c# 模拟 网页实现12306登陆、自动刷票、自动抢票完全篇(转)
- VB.Net2005中TabControl实现Disabl功能,例一
- VB.NET实现应用程序自动更新2
- python 3 的selenium模块实现网页自动登陆
- VB.Net实现打印机纸张类型自动更换的方法
- 模拟网页提交,实现自动登陆
- vb.net自动发帖器二(httpwebrequest实现)
- C#.net cookie、session实现自动登陆
- [VB.NET]高分求关于网页内容分析的问题(自动翻页)