现在的位置: 首页 > 综合 > 正文

给初学者:VB如何操作WEB页的浏览提交———一:在百度中自动搜索

2013年11月15日 ⁄ 综合 ⁄ 共 1869字 ⁄ 字号 评论关闭

         最近写了点东西,关于网页的自动提交等问题,不会写就上网找,发现代码比较乱,没有什么条理,虽然自己的程序写完了,但是不敢独享,斗胆班门弄斧一下,高手莫xiào !闲话少说,来点正经的,首先简单叙述一下网页上常见的我们用到的东东。

        首先就是一些控件,我们要填写的东西,选择的选项,下拉列表等等。

一、获取网页源代码:一般用右键查看即可,当然也有些不行的,另类方法有很多,实在不行试试这段代码:

WebBrowser1.Document.body.createtextrange().htmltext

二、观察代码找到我们要的东东:

以百度主页为例:

1、观察主页:

      我们要填写的是一个文本框,然后点那个搜索按钮

2、右键查看源代码(代码很多,不都贴了),关键部分:

      文本框

               <input type=text name=wd class=ff size=35 maxlength=100>

      按钮

                <input type=submit value=百度搜索>

3、编写代码:

首先呢,定位我们的做法:

可以打开一个新的IE窗口(使用shell "explorer www.baidu.com"即可),然后获取其中的WEB对象(代码网上有的)

我们这样做:在程序内部打开网页(在工程中添加 Microsoft Internet Controls 部件(即WebBrowser控件),命名为mDemoWB)

填写文本框时比较简单了!由于网页代码明确给出了TEXT控件的名称:name=wd,如下调用即可:

WBDocument.body.All("wd").Value = "123"

而提交那里,就比较“恶心”了,没有明确控件ID或者NAME,但是很明确的网页代码是input type=submit,这说明该按钮的作用是提交网页,那好办了,使用如下调用即可实现相同功能:

WBDocument.Forms(0).submit

至此,问题解决

完整代码如下:(代码比较简单,所以不提供下载,大家复制就好)

'本程序由ZCSOR编写于2007年1月13日
'QQ:47493585
'E-MAIL:shaoyan5@163.com
'Blog:http://blog.csdn.net/zcsor
'转发请保留作者以上信息

'********************************************************************
'DEMO1:填写表单并提交
'********************************************************************
'引用页:www.baidu.com
'注意网页源代码中如下段:
'<input type=text name=wd class=ff size=35 maxlength=100>
'<input type=submit value=百度搜索>

'在工程中添加 Microsoft Internet Controls 部件(即WebBrowser控件),命名为mDemoWB

'WebBrowser控件Document对象
Dim WBDocument As Variant

Private Sub cmdAddText_Click()
mDemoWB.Navigate "www.baidu.com"
End Sub

Private Sub Form_Load()
'使用空白页初始化浏览
mDemoWB.Navigate "about:blank"
End Sub

Private Sub mDemoWB_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'打开空白页时跳过
If URL <> "http://www.baidu.com/" Then Exit Sub
'等待数据下载完毕
Do
    If Not mDemoWB.Busy Then Exit Do
    DoEvents
Loop

'获取Document对象
Set WBDocument = mDemoWB.Document

'填写表单,此处wd为开头网页代码中第一行name=wd处wd,通过控件名称来设置其值
WBDocument.body.All("wd").Value = "123"

'提交表单,此处调用了提交方法(第二行type=submit处),对于现行IE版本一般不会出现问题,但不同版本浏览器可能无法成功
Call WBDocument.Forms(0).submit
End Sub

 

抱歉!评论已关闭.