〖急!高分求救!〗!自动填写网页中的表单,然后提交『在线等待』

时间:2022-12-19 21:04:54
在开发中,要求实现一个『自动填写表单的功能』,以实现网站论坛或邮箱的自动登录。
比如我从经在 bbs.sdweb1.com 注册了一个用户,我想写一个程序,在下次访问的时候,通过程序直接转到 bbs.sdweb1.com 的登录页面,并在相应页面的 Text 控件中填写好我事先设置的 用户名和密码,并模拟单击『登录』按钮,这个我就不用每次都输入用户名和密码了  ???

14 个解决方案

#1


如果是自己的页面还不简单么?
当然,前提是最好保证其他人看不到这个页面
然后写死参数,页面onload的时直接提交,
与想要登陆的按钮响应事件相同
最直接的办法就这样……

当然,还有其它的……

#2


建立特别的COOKIES名

每次访问时就可以通过判断,直接将用户置入登陆状态

#3


Url="http://XXXXXXXX"  '表单所在页面
PostStr="?textA=XXX&textB=XXX.....&textN=XXXX" '表单中的项目及你想填的值
Set Http = CreateObject("NetBox.Http")
Http.Open "GET", Url, False
Http.Send PostStr
'以上如果对方没有做表单检测的话就可以实现

Url="http://XXXXXXXX"  '表单所在页面
PostStr="textA=XXX&textB=XXX.....&textN=XXXX" '表单中的项目及你想填的值
Set Http = CreateObject("NetBox.Http")
Http.Open "POST", Url, False
Http.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
Http.Send PostStr
'这样是模拟表单提交

#4


如果是你自己搞的网页就很简单,使用SESSION或cookie即可作到,如果是别人的,使用xmlHttp技术也未必做到。

#5



#6


up

#7


谢谢大家的帮助!

当然不是自己的页面,是自己的页面也就不用麻烦大家了!

期望更好的解决方法!

热切的期待中 .....

#8


To poron9(上帝之手)

Set Http = CreateObject("NetBox.Http")

这句话运行时产生如下错误:

Microsoft VBScript 运行时错误 错误 '800a01ad' 
ActiveX 部件不能创建对象: 'NetBox.Http' 

什么原因,怎么解决??

谢谢

#9


怎么没有人回答了?

高手到哪里去了?

100分没有人想要了吗??

#10


hehe,netbox是别人的组件,你没安装这个,当然不行了。模拟表单提交能对付一般的,但是想tencent的就未必有效果,它是加了Cookie结合验证码的登陆验证。当然,如果你要实现的话,也不是不可以。你可以用xmlhttp模拟直接提交表单到登陆的处理页面(不是登陆页面),直接提交到服务器。
js应该也可以做到,前几年很流行的邮箱登陆,你搜索下,对你可能有帮助
----------------------------------------------------------------------
我以热心、耐心、真诚和时间申请当版主,支持我的请进!
http://community.csdn.net/Expert/topic/4447/4447054.xml?temp=.3835565

#11


没有做表单来源检测的话,还需要那么麻烦?

自己写个表单
<form name="form1" action="http://XXXXXXXX/xxx.asp" target="_blank">

xxx.asp是处理表单登陆信息的页面,到那个网站上看看他的表单提交地址就知道了,注意你的input name 都要和他一样

如果有做检测,试一下,把对方的登陆界面放在自己网页的frame里面,然后用javascript控制
比如frame的名字是aa,对方表单名是form1
aa.form1.username="xxx";
aa.form1.passwd="yyyy";
aa.form1.submit();

#12


Set Http = CreateObject("NetBox.Http")
改成
Set Http = CreateObject("microsoft.xmlHttp")

#13


谢谢 大家的积极回答

暂时还没有解决,期待更多精彩回答 !!!

#14


你去它那個網頁裡面找那個表單的代碼呀,然後自己做個網頁表單設置相同的隱藏參數和對應的值,再搞個自動提交的函數直接轉到它的那個判斷頁面代碼裡去,
當然,首先那個網頁登錄的得支持外部提交。

#1


如果是自己的页面还不简单么?
当然,前提是最好保证其他人看不到这个页面
然后写死参数,页面onload的时直接提交,
与想要登陆的按钮响应事件相同
最直接的办法就这样……

当然,还有其它的……

#2


建立特别的COOKIES名

每次访问时就可以通过判断,直接将用户置入登陆状态

#3


Url="http://XXXXXXXX"  '表单所在页面
PostStr="?textA=XXX&textB=XXX.....&textN=XXXX" '表单中的项目及你想填的值
Set Http = CreateObject("NetBox.Http")
Http.Open "GET", Url, False
Http.Send PostStr
'以上如果对方没有做表单检测的话就可以实现

Url="http://XXXXXXXX"  '表单所在页面
PostStr="textA=XXX&textB=XXX.....&textN=XXXX" '表单中的项目及你想填的值
Set Http = CreateObject("NetBox.Http")
Http.Open "POST", Url, False
Http.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
Http.Send PostStr
'这样是模拟表单提交

#4


如果是你自己搞的网页就很简单,使用SESSION或cookie即可作到,如果是别人的,使用xmlHttp技术也未必做到。

#5



#6


up

#7


谢谢大家的帮助!

当然不是自己的页面,是自己的页面也就不用麻烦大家了!

期望更好的解决方法!

热切的期待中 .....

#8


To poron9(上帝之手)

Set Http = CreateObject("NetBox.Http")

这句话运行时产生如下错误:

Microsoft VBScript 运行时错误 错误 '800a01ad' 
ActiveX 部件不能创建对象: 'NetBox.Http' 

什么原因,怎么解决??

谢谢

#9


怎么没有人回答了?

高手到哪里去了?

100分没有人想要了吗??

#10


hehe,netbox是别人的组件,你没安装这个,当然不行了。模拟表单提交能对付一般的,但是想tencent的就未必有效果,它是加了Cookie结合验证码的登陆验证。当然,如果你要实现的话,也不是不可以。你可以用xmlhttp模拟直接提交表单到登陆的处理页面(不是登陆页面),直接提交到服务器。
js应该也可以做到,前几年很流行的邮箱登陆,你搜索下,对你可能有帮助
----------------------------------------------------------------------
我以热心、耐心、真诚和时间申请当版主,支持我的请进!
http://community.csdn.net/Expert/topic/4447/4447054.xml?temp=.3835565

#11


没有做表单来源检测的话,还需要那么麻烦?

自己写个表单
<form name="form1" action="http://XXXXXXXX/xxx.asp" target="_blank">

xxx.asp是处理表单登陆信息的页面,到那个网站上看看他的表单提交地址就知道了,注意你的input name 都要和他一样

如果有做检测,试一下,把对方的登陆界面放在自己网页的frame里面,然后用javascript控制
比如frame的名字是aa,对方表单名是form1
aa.form1.username="xxx";
aa.form1.passwd="yyyy";
aa.form1.submit();

#12


Set Http = CreateObject("NetBox.Http")
改成
Set Http = CreateObject("microsoft.xmlHttp")

#13


谢谢 大家的积极回答

暂时还没有解决,期待更多精彩回答 !!!

#14


你去它那個網頁裡面找那個表單的代碼呀,然後自己做個網頁表單設置相同的隱藏參數和對應的值,再搞個自動提交的函數直接轉到它的那個判斷頁面代碼裡去,
當然,首先那個網頁登錄的得支持外部提交。