请问如何实现自动填写网页的用户名和密码然后登录进去web的页面

时间:2021-07-02 20:48:04
请问如何实现自动填写网页的用户名和密码然后登录进去web的页面

27 个解决方案

#1


把这个网页抓下来放在本地然后在VB中调用IE控件即可

#2


怎么编程把用户名,密码提交到网页上的登录页?
首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
假设你的HTML页面表单代码如下:
<form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser">
  <p>请填写下面表单注册(*项为必添项)</p>
  <p>*姓名<input type="text" name="Name" size="20"></p>
  <p>*昵称<input type="text" name="NickName" size="20"></p>
  <p>电子邮件<input type="text" name="EMail" size="20"></p>
  <p>*密码<input type="text" name="Password" size="20"></p>
  <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
注意其中元素的type、Name、value属性。然后VB中的代码如下:
Private Sub Command1_Click()
    WebBrowser1.Navigate "http://chen/chat/newuser.htm"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim vDoc, vTag
    Dim i As Integer
      
    Set vDoc = WebBrowser1.Document
    List1.Clear
    For i = 0 To vDoc.All.length - 1
        If UCase(vDoc.All(i).tagName) = "INPUT" Then
            Set vTag = vDoc.All(i)
            If vTag.Type = "text" Or vTag.Type = "password" Then
                List1.AddItem vTag.Name
                Select Case vTag.Name
                    Case "Name"
                        vTag.Value = "IMGod"
                    Case "NickName"
                        vTag.Value = "IMGod"
                    Case "Password"
                        vTag.Value = "IMGodpass"
                    Case "EMail"
                        vTag.Value = "IMGod@paradise.com"
                End Select
            ElseIf vTag.Type = "submit" Then
                vTag.Click
            End If
        End If
    Next i
End Sub
点击Command1就可以自动填表并提交了。

#3


我用的是以下方法,webbrowser1 为ie控件,aa为从字典中读出的密码,你改改吧

WebBrowser1.SetFocus
SendKeys "{TAB}", True
SendKeys "{TAB}", True
For i = 0 To 20
SendKeys "{DEL}", True
Next i
aa = Trim(ts.ReadLine)
cur_line = cur_line + 1
Me.Label1.Caption = cur_line
SendKeys aa, True
SendKeys "{ENTER}", True

#4


to  TechnoFantasy(www.applevb.com) :
用WebBrowser控件要把整个网页全部DOWN下来才行,速度太慢。如果我已知某一网页的登录界面内容不会改变,能不能使用其他较快的方法,可以不用把整个网页先传下来再提交呢?

#5


up

#6


有谁会这个问题吗?分不够可以再加!!!

#7


可以解决,但用vb可能不方便,在代码中获取当前网页相关的接口指针,然后调用相关的方法,本质上和TechnoFantasy(www.applevb.com)的方法是一样的。只不过这里有一个动态获取接口指针的问题,而不是直接在vb中引用。我只能给你这样说说思路,具体我没时间去做,认真学习一下com吧。

#8


to : ciml(镜子) :
   为什么不能不等页面全部下载完就直接发送(Post)一个表单信息过去呢(我已经预先知道网页的URL和网页的内容了),能否给一个代码看看?

#9


没有人知道怎么实现吗?

#10


你可以用http请求发送器,参考:
http://www.csdn.net/expert/topic/378/378264.xml

#11


采用客户端脚本语言(如果用户名和密码是您预设)
使用onclick事件
<SCRIPT>
function Tour()
{
  document.Login.LoginName.value="TourStaffer";
  document.Login.Password.value="8888";
  document.Login.submit();
  return(false); 
}
</SCRIPT>

#12


Dim doc As IHTMLDocument2
    Set doc = WebBrowser1.Document

        'select the first input tag
        Dim Element As IHTMLElement
        Set Element = Inputs.Item(0, 1)
        
        'use the right interface
        Dim InputElement As IHTMLInputElement
        Set InputElement = Element
        tmpURL = "***"
        InputElement.Value = tmpURL
        
        
        'call submit on the first form on the page
        doc.Forms.Item(0, 0).Target = "_self"
        doc.Forms.Item(0, 0).submit

#13


学习

#14


大家说的方法都需要把整个网页传输下来才能够回应,而我想知道的是:因为网页的内容我已经预先知道(因为每次登录的界面都一样),有没有办法不需要每次都等网页传输下来再Submit呢?我想要的是提高速度,在短时间内重复登录很多次。

#15


大家注意,登录网页的内容不是我编写的,所以我不能改变它的脚本语句。


希望大家能够踊跃发言,谢谢!!!

#16


请大家看看我这个问题

#17


我有个比较笨的办法,希望高手不要笑我。

你用ShellExecute或者是WinExec打开一个浏览器,屏蔽用户当前所有的按键以及鼠标点击(鼠标的屏蔽方法可以用enablewindow来禁止GetDesktopWindow得到的句柄),然后发送按键信息到那个打开了的窗口(也就是TAB键,如果窗口打开后焦点就在“用户名”处就最好,如果不是,既然你看过那个网页你就应该知道需要按多少个TAB键才可以到达“用户名”处),此时就可以继续发送用户名和密码到窗口了,如果你做得很快,用户一般不会发现你把他的鼠标点击信息屏蔽了。在他以为系统出问题的时候,登陆窗口不见了,接着就出现登陆后的窗口了。你说这样是不是很笨但是用最方便的方法呢?我还不知道你的程序用来干什么就只有这样说了,如果有用,希望你可以给我加分!

#18


to bestofbest(咖啡) :
如果按照你的做法,还是要等整个登录页面全部下载完毕才能发送按键消息啊,我再详细说一下我的想法:

1、如果在浏览器输入一个URL,就会发送一个页面请求。例如:敲入"www.163.net",就请求了一个页面。

2、当页面显示出来时(基本上页面已经下载完毕了),在用户名和密码处输入正确的信息,点击“登录”才能进电子邮箱的页面。


我的想法是,有没有方法,在第二步中,不用等待页面的内容下传到本地,直接提交用户名和密码的信息进行登录,这样就能够节省中间等待页面下传的时间了。


希望各位高手能够就此问题踊跃发言!!!!谢谢!!!!

#19


以上的功能可以暴力破解用户的密码呀。

#20


to  jyd30(三人行必有我师) :
可能是吧,但是我想要做的并不是用于破解用户密码.

#21


我有个想法,还是说了吧。
我觉得如果你要登陆信箱或者其他的页面,为什么不先分析它的源代码?
例如我的主页上使用了www.ecalling.com的寻呼页面,它上面只有调用.asp的方法,只在页面上置个输入的框就可以了,你也可以试着用你的程序直接调用那个.asp,只是这样就无法兼顾喜欢用原来的浏览器的人了,必须用你自己的程序打开页面。实现的方法我不知道,我只是发表一下我的想法,对你没有帮助的话,我很抱歉,我的废话很多。如果我又理解错了你的意思,那我就不在你的地方乱讲话了。你的想法我大概知道一些了,但是我的建议可以和你的想法差太远,因为我的水平就只有这样了。毕竟确实有很多网站有这样登陆其他信箱的连接,一般应该也是.asp吧,按照那个.asp的使用方法调用一个网页也可以撒。算了,不废话了,多说也没有意思。成功了要告诉我哦,我很关心这个问题,我的信箱是iscoffee@etang.com

#22


建议学习一下HTTP和TCP/IP等网络协议。
可以买书看。

#23


先登录一次,然后记下地址栏中的内容(要快)
以后就可以依据此发送按键信息直接打开登陆后的网页
这个略加改变,可以暴力破解密码

#24


简单一点的:
<p>*姓名<input type="text" name="Name" size="20"></p> 
<p>*密码<input type="text" name="Password" size="20"></p> 
提交表单为a.asp
你想填入 张三 mima

你直接访问a.asp?name=张三&password=mima

要从字典破密码 只要换后面那个值就可以了
根据返回表单判断正误

#25


如你要填写的是"http://chen/chat/newuser.htm" 
<form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser.ASP"> 
<p>请填写下面表单注册(*项为必添项)</p> 
<p>*姓名<input type="text" name="USERName" size="20"></p> 
<p>*密码<input type="text" name="Password" size="20"></p> 
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p> 
</form> 

在里面的用户名TEXTBOX的NAME是USERName
密码的TEXTBOX的NAME是Password

WebBrowser1.Navigate "http://chen/dll/chat/chatmain.exe/RegUser.ASP?USERName=你的名字&Password=你的密码" 

不好意思,懒得打字


#26


再说一个例子
某社区有个打工的功能,用来挣钱,但耗体力
具体方法是 在a页面上点一图片,出来一个b窗口,再点a上的按钮,如果b的句柄正确就相当于打了一次工,给你加钱,然后再点图片,来回反复,很麻烦,而且次数多了还要去花钱医疗,恢复体力。来回折腾几分钟你手就酸了,还没几块钱,累!
经过分析源文件,知道打工其实就是调用t.cgi?menu=dg
而医疗就是访问tcgi?menu=yl
这样就简单多了,vb的web控件,打开上面两个地址就行了,平时没事就把程序挂着,没几小时功夫,几千大洋到手

我说这个例子的目的是 网页方面的功能 不一定非得用vb编程,仔细研究网页的源代码会有很大的收获的

#27


action  是接受提交信息的页面
WebBrowser1.Navigate 里"?"号前面的要写 action  的值

<input type="text" name="USERName" size="20">
说明这个是TEXTBOX 名字是USERName
?USERName=你的名字
就相当于在这个TEXTBOX里填写"你的名字"
&   ------顾名思义就是连接符,说明后面的也是要提交的内容

其他要填写的内容就要先用个&号连接,如上的

USERName=你的名字&Password=你的密码 

详细的资料请自己看看HTML的书.

今天我登陆了但是系统不承认每次回帖都要输密码,烦!!!
QQRN@SINA.COM


#1


把这个网页抓下来放在本地然后在VB中调用IE控件即可

#2


怎么编程把用户名,密码提交到网页上的登录页?
首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
假设你的HTML页面表单代码如下:
<form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser">
  <p>请填写下面表单注册(*项为必添项)</p>
  <p>*姓名<input type="text" name="Name" size="20"></p>
  <p>*昵称<input type="text" name="NickName" size="20"></p>
  <p>电子邮件<input type="text" name="EMail" size="20"></p>
  <p>*密码<input type="text" name="Password" size="20"></p>
  <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p>
</form>
注意其中元素的type、Name、value属性。然后VB中的代码如下:
Private Sub Command1_Click()
    WebBrowser1.Navigate "http://chen/chat/newuser.htm"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim vDoc, vTag
    Dim i As Integer
      
    Set vDoc = WebBrowser1.Document
    List1.Clear
    For i = 0 To vDoc.All.length - 1
        If UCase(vDoc.All(i).tagName) = "INPUT" Then
            Set vTag = vDoc.All(i)
            If vTag.Type = "text" Or vTag.Type = "password" Then
                List1.AddItem vTag.Name
                Select Case vTag.Name
                    Case "Name"
                        vTag.Value = "IMGod"
                    Case "NickName"
                        vTag.Value = "IMGod"
                    Case "Password"
                        vTag.Value = "IMGodpass"
                    Case "EMail"
                        vTag.Value = "IMGod@paradise.com"
                End Select
            ElseIf vTag.Type = "submit" Then
                vTag.Click
            End If
        End If
    Next i
End Sub
点击Command1就可以自动填表并提交了。

#3


我用的是以下方法,webbrowser1 为ie控件,aa为从字典中读出的密码,你改改吧

WebBrowser1.SetFocus
SendKeys "{TAB}", True
SendKeys "{TAB}", True
For i = 0 To 20
SendKeys "{DEL}", True
Next i
aa = Trim(ts.ReadLine)
cur_line = cur_line + 1
Me.Label1.Caption = cur_line
SendKeys aa, True
SendKeys "{ENTER}", True

#4


to  TechnoFantasy(www.applevb.com) :
用WebBrowser控件要把整个网页全部DOWN下来才行,速度太慢。如果我已知某一网页的登录界面内容不会改变,能不能使用其他较快的方法,可以不用把整个网页先传下来再提交呢?

#5


up

#6


有谁会这个问题吗?分不够可以再加!!!

#7


可以解决,但用vb可能不方便,在代码中获取当前网页相关的接口指针,然后调用相关的方法,本质上和TechnoFantasy(www.applevb.com)的方法是一样的。只不过这里有一个动态获取接口指针的问题,而不是直接在vb中引用。我只能给你这样说说思路,具体我没时间去做,认真学习一下com吧。

#8


to : ciml(镜子) :
   为什么不能不等页面全部下载完就直接发送(Post)一个表单信息过去呢(我已经预先知道网页的URL和网页的内容了),能否给一个代码看看?

#9


没有人知道怎么实现吗?

#10


你可以用http请求发送器,参考:
http://www.csdn.net/expert/topic/378/378264.xml

#11


采用客户端脚本语言(如果用户名和密码是您预设)
使用onclick事件
<SCRIPT>
function Tour()
{
  document.Login.LoginName.value="TourStaffer";
  document.Login.Password.value="8888";
  document.Login.submit();
  return(false); 
}
</SCRIPT>

#12


Dim doc As IHTMLDocument2
    Set doc = WebBrowser1.Document

        'select the first input tag
        Dim Element As IHTMLElement
        Set Element = Inputs.Item(0, 1)
        
        'use the right interface
        Dim InputElement As IHTMLInputElement
        Set InputElement = Element
        tmpURL = "***"
        InputElement.Value = tmpURL
        
        
        'call submit on the first form on the page
        doc.Forms.Item(0, 0).Target = "_self"
        doc.Forms.Item(0, 0).submit

#13


学习

#14


大家说的方法都需要把整个网页传输下来才能够回应,而我想知道的是:因为网页的内容我已经预先知道(因为每次登录的界面都一样),有没有办法不需要每次都等网页传输下来再Submit呢?我想要的是提高速度,在短时间内重复登录很多次。

#15


大家注意,登录网页的内容不是我编写的,所以我不能改变它的脚本语句。


希望大家能够踊跃发言,谢谢!!!

#16


请大家看看我这个问题

#17


我有个比较笨的办法,希望高手不要笑我。

你用ShellExecute或者是WinExec打开一个浏览器,屏蔽用户当前所有的按键以及鼠标点击(鼠标的屏蔽方法可以用enablewindow来禁止GetDesktopWindow得到的句柄),然后发送按键信息到那个打开了的窗口(也就是TAB键,如果窗口打开后焦点就在“用户名”处就最好,如果不是,既然你看过那个网页你就应该知道需要按多少个TAB键才可以到达“用户名”处),此时就可以继续发送用户名和密码到窗口了,如果你做得很快,用户一般不会发现你把他的鼠标点击信息屏蔽了。在他以为系统出问题的时候,登陆窗口不见了,接着就出现登陆后的窗口了。你说这样是不是很笨但是用最方便的方法呢?我还不知道你的程序用来干什么就只有这样说了,如果有用,希望你可以给我加分!

#18


to bestofbest(咖啡) :
如果按照你的做法,还是要等整个登录页面全部下载完毕才能发送按键消息啊,我再详细说一下我的想法:

1、如果在浏览器输入一个URL,就会发送一个页面请求。例如:敲入"www.163.net",就请求了一个页面。

2、当页面显示出来时(基本上页面已经下载完毕了),在用户名和密码处输入正确的信息,点击“登录”才能进电子邮箱的页面。


我的想法是,有没有方法,在第二步中,不用等待页面的内容下传到本地,直接提交用户名和密码的信息进行登录,这样就能够节省中间等待页面下传的时间了。


希望各位高手能够就此问题踊跃发言!!!!谢谢!!!!

#19


以上的功能可以暴力破解用户的密码呀。

#20


to  jyd30(三人行必有我师) :
可能是吧,但是我想要做的并不是用于破解用户密码.

#21


我有个想法,还是说了吧。
我觉得如果你要登陆信箱或者其他的页面,为什么不先分析它的源代码?
例如我的主页上使用了www.ecalling.com的寻呼页面,它上面只有调用.asp的方法,只在页面上置个输入的框就可以了,你也可以试着用你的程序直接调用那个.asp,只是这样就无法兼顾喜欢用原来的浏览器的人了,必须用你自己的程序打开页面。实现的方法我不知道,我只是发表一下我的想法,对你没有帮助的话,我很抱歉,我的废话很多。如果我又理解错了你的意思,那我就不在你的地方乱讲话了。你的想法我大概知道一些了,但是我的建议可以和你的想法差太远,因为我的水平就只有这样了。毕竟确实有很多网站有这样登陆其他信箱的连接,一般应该也是.asp吧,按照那个.asp的使用方法调用一个网页也可以撒。算了,不废话了,多说也没有意思。成功了要告诉我哦,我很关心这个问题,我的信箱是iscoffee@etang.com

#22


建议学习一下HTTP和TCP/IP等网络协议。
可以买书看。

#23


先登录一次,然后记下地址栏中的内容(要快)
以后就可以依据此发送按键信息直接打开登陆后的网页
这个略加改变,可以暴力破解密码

#24


简单一点的:
<p>*姓名<input type="text" name="Name" size="20"></p> 
<p>*密码<input type="text" name="Password" size="20"></p> 
提交表单为a.asp
你想填入 张三 mima

你直接访问a.asp?name=张三&password=mima

要从字典破密码 只要换后面那个值就可以了
根据返回表单判断正误

#25


如你要填写的是"http://chen/chat/newuser.htm" 
<form method="POST" action="http://chen/dll/chat/chatmain.exe/RegUser.ASP"> 
<p>请填写下面表单注册(*项为必添项)</p> 
<p>*姓名<input type="text" name="USERName" size="20"></p> 
<p>*密码<input type="text" name="Password" size="20"></p> 
<p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p> 
</form> 

在里面的用户名TEXTBOX的NAME是USERName
密码的TEXTBOX的NAME是Password

WebBrowser1.Navigate "http://chen/dll/chat/chatmain.exe/RegUser.ASP?USERName=你的名字&Password=你的密码" 

不好意思,懒得打字


#26


再说一个例子
某社区有个打工的功能,用来挣钱,但耗体力
具体方法是 在a页面上点一图片,出来一个b窗口,再点a上的按钮,如果b的句柄正确就相当于打了一次工,给你加钱,然后再点图片,来回反复,很麻烦,而且次数多了还要去花钱医疗,恢复体力。来回折腾几分钟你手就酸了,还没几块钱,累!
经过分析源文件,知道打工其实就是调用t.cgi?menu=dg
而医疗就是访问tcgi?menu=yl
这样就简单多了,vb的web控件,打开上面两个地址就行了,平时没事就把程序挂着,没几小时功夫,几千大洋到手

我说这个例子的目的是 网页方面的功能 不一定非得用vb编程,仔细研究网页的源代码会有很大的收获的

#27


action  是接受提交信息的页面
WebBrowser1.Navigate 里"?"号前面的要写 action  的值

<input type="text" name="USERName" size="20">
说明这个是TEXTBOX 名字是USERName
?USERName=你的名字
就相当于在这个TEXTBOX里填写"你的名字"
&   ------顾名思义就是连接符,说明后面的也是要提交的内容

其他要填写的内容就要先用个&号连接,如上的

USERName=你的名字&Password=你的密码 

详细的资料请自己看看HTML的书.

今天我登陆了但是系统不承认每次回帖都要输密码,烦!!!
QQRN@SINA.COM