整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

WebBrowser控件自动提交表单

WebBrowser控件自动提交表单

作中有这样的场景,需要手动填写很多格式一样的表单,然后点击提交。如果数据在Excel中,一个个的copy,重复性工作太繁琐。今天就介绍一个实现网页自动化的控件--WebBrowser控件。

﹥﹥先给大家看看效果:(自动填写注册页面的表单数据)




这个效果稍做改变,加个循环,就可以实现批量填入网页表单数据,并自动提交。(备注:公司内部的表单一般是不会有验证码的,所以暂时不用考虑识别验证码的工作。)

这就是WebBrowser控件的强大之处。下面就教大家如何实现上述网页自动化的效果。

﹥﹥何为WebBrower?

WebBrowser 是微软提供的一个用于浏览网页的 ActiveX 控件,是植入在程序中一个控件,网页显示在窗体中.可以利用WebBrowser 对网页进行控制,进行一些操作。

在VBA中WebBrowser 控件插入到 VBA 的用户窗体、一般情况下,VBA 的控件工具箱中找不到该控件,需要在控件工具箱点击右键,在右键菜单中选择“附加控件”,在附加控件对话框中,找到“Microsoft Web Browser”并且勾选。




控件工具箱中出现一个地球形状的控件,这样就可以把该控件和其他控件一样,拖放到用户窗体中使用。




﹥﹥制作方法:

■第一步:拖拽控件到窗体上,添加两个按钮。一个是打开网页按钮,一个是填入数据按钮、一个点击【提交按钮】的按钮。(实际可以合为一个按钮,这里只是为了方便演示操作)




■第二步:分析网页结构,找出需要填写的表单文本框ID,还有提交按钮的ID。

网页F12调出开发者工具,可以看到,对应于网页上具体的控件内容,都有具体的html代码。




找到填写昵称的代码段,我们看到,昵称文本框的ID为"inputName",这就是我们需要的。用相同的方法,找到其他几个文本框的ID。




■第三步:双击"打开网页"按钮,填入以下代码;

Private Sub CommandButton1_Click()
 UserForm1.WebBrowser1.Navigate "http://zc.7k7k.com/"
 UserForm1.WebBrowser1.Silent=True'禁止安全弹窗提醒
End Sub

双击"填入数据"按钮,填入以下代码

Private Sub CommandButton2_Click()
 With UserForm1.WebBrowser1.Document
 .getElementById("inputName").Value=Range("a2")
 .getElementById("inputPwd").Value=Range("b2")
 .getElementById("inputRePwd").Value=Range("b2")
 .getElementById("inputRealName").Value=Range("c2")
 .getElementById("inputCardId").Value=Range("d2")
 End With
End Sub

双击"点击按钮"按钮,填入以下代码:(实现提交按钮的点击)

Private Sub CommandButton3_Click()
 Set doc=UserForm1.WebBrowser1.Document
 For i=0 To doc.All.Length - 1
 If (LCase(doc.All(i).tagname))="input" Then
 If (LCase(doc.All(i).Type))="submit" Then
 Set tg=doc.All(i)
 tg.Click
 Exit Sub
 End If
 End If
 Next i
End Sub


这只是个简单的例子,复杂的网页需要具体的分析解决。

我们也可以利用WebBrowser控件提取网页的数据,因为网页都是加载成功后的数据,所以内容基本都能提取成功。

多数PHP程序都使用HTML表单从用户那里获取数据并计算结果。

HTML表单的一些基本原则

  • 选择适合于收集的数据类型和提供交互方式的控件。
  • 清楚标记每一个控件,这样用户就可以理解其功能。
  • 尽可能将标签对齐。将控件的左边缘对齐。
  • 将相关的标签分组,并且通过设计中使用空白将每一个分组分开。
  • 表单上的控件顺序应该类似于用户操作他们的顺序。

创建基本HTML表单

首先创造一个基本的HTML大纲,包含表单控件;然后将控件进行合并(HTML表单必须包括一个提交按钮,用户单击它可以将表单数据发送到服务器。)一个单独的HTML页面可以包含多个表单。

  • 创建HTML结构

包含表单的HTML结构和和普通的HTML结构一样。

<HTML>
  <HEAD>
  <TITLE>标题放在这</TITLE>
  </HEAD>
<BODY>
  表单页面放在这
  </BODY>
  </HTML>

在包含表单的HTML页面中可以使用任何HTML标签。基本的表单使用FROM标签来说明。该标签中METHOD属性接收GET或POST两个值中的一个。ACTION属性子明PHP脚本的url,该脚本可以收集通过表单收集的数据,可以是绝对路径或者相对路径

<FORM METHOD="method" ACTION="url"> 
  中间可以放置表单控件
  </FORM>
  • 合并控件

两个常用的基本控件:文本框和提交按钮。

文本框:允许用户键入信息以发送给PHP脚本。NAME属性为文本提供名称,PHP脚本可以通过名称准确访问其内容,因此它应该是唯一的且符合PHP变量命名规则(但不需要$符号),单标签。VALUE属性指明出现在提交按钮上面的标题。创建方式如下:

<INPUT TYPE="TEXT" NAME="text">

提交按钮:允许用户将一个表单的内容发送到服务器,一个HTML表单对应应该有一个提交按钮。

示例:一个完整的HTML表单。

<HTML>
  <HEAD>
  <TITLE>标题</TITLE>
  </HEAD>
<BODY>
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
</FORM>
  </BODY>
  </HTML>


  • 使用多个表单

可以在一个HTML页面中包含多个表单,注意下一个表单的FORM开始之前需要结束前一个FORM表单。

<HTML>
  <HEAD>
  <TITLE>标题</TITLE>
  </HEAD>
<BODY>
  
<FORM METHOD="POST" ACTION="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data">
<BR/>
<BR/>
</FORM>

<FORM METHOD="POST" NAME="phpinfo.php">
<INPUT TYPE="TEXT" NAME="user_name1">
<BR/>
<BR/>
<INPUT TYPE="TEXT" NAME="user_email1">
<BR/>
<BR/>
<INPUT TYPE="SUBMIT" VALUE="Send the Data1">
</FORM>

  </BODY>
  </HTML>


创建表单控件

  • 创建自定义的文本框

文本框的属性中,TYPE和NAME是必须的,其余是可选属性。SIZE属性用于设置文本框的可视大小;MAXLENGTH指明用户键入字符的最大长度;VALUE给出了一个最初显示在文本框中的值。

<input type="text" name="" size="" maxlength="" value="">
  • 创建文本区域

文本区域可以输入多行文本。NAME和ROWS属性是必须的。ROWS属性表明了文本区域内可以看到的文本行数,充满时会滚动。COLS属性指明可见文本列数与行数类似。WRAP属性指明文本区域内单词换行的方式,可以指定如下值。该标签为双标签。

说明

off

禁止单词换行但用户可以输入换行符强制换行

virtual/soft

各行显示为换行,但是换行并没有被发送到服务器

physica/hard

启用了单词换行

<inputarea name="" rows="" cols="" wrap="">
  • 创建密码框

创建密码框的语法与文本框相同,但要将TYPE属性指定为PASSWORD而不是TYPE。

<input type="password" name="" size="" maxlength="" value="">
  • 创建复选框

取两个值中的一个,即二选一。TYPE属性是必须的,checked属性出现,该复选框默认情况会被选定。value属性指定复选框被选定情况下被发送到服务器的值,默认发送on值。法如下:

<input type="checkbox" name="" checked value="">
  • 创建单选按钮

语法与复选框属性含义相同,但是TYPE属性的值必须是RADIO,NAME属性是必须的。

<input type="radio" name="" checked value="">
  • 创建列表框

用户可以选择一个或者多个选项,它是一个滚动菜单。

<select name="" multipile size="">options go here</select>

name属性是必须的,multipile属性指明用户可以通过按下crtl键并单击多个选项来选择它们

列表框的单选行为可作为单选按钮。

<option selected value="text"></options>
  • 创建隐藏域
<input type="hidden" name="text"value="">
  • 实现上传文件的HTML表单
<input type="FILE" name="name" accept="time" value="text">

其中type属性是必须的。格式通过使用MIME码指定。常用的格式如下:


超文本标记语言文本 .html,.html text/html

  普通文本 :txt text/plain

  word文档:application/msword

  RTF文本 :rtf application/rtf

  GIF图形 :gif image/gif

  JPEG图形 :jpeg,

  jpg: image/jpeg

  au声音文件:au audio/basic

  MIDI音乐文件 :mid,.midi audio/midi,audio/x-midi

  RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

  MPEG文件 .mpg,.mpeg video/mpeg

  AVI文件 .avi video/x-msvideo

  GZIP文件 .gz application/x-gzip

  压缩文件.rar application/octet-stream

  压缩文件.zip application/x-zip-compressed

  TAR文件 .tar application/x-tar


更多提交表单的信息

  • 使用图像提交数据
<input type="image" src="url" name="text" align="align">
  • 创建重置按钮
<input type="reset" value="text">

天小编给大家带来的是html表单提交教程,非常简单!

话不多说直接进入教程

首先要注意的事项:

第一:因为这节课涉及到了php所以本地要安装php

在这里小编用的是phpStudyphpStudy(特点简单很适合本地开发测试)

phpStudy界面

第二:在php编码里一定要注意不要编写错误

<?php //为开头 //为结尾?>

<?php 这里写php代码 ?>

要切记php代码要以分号未结束 “;”

首页我们到我们刚刚安装的软件根目录下,找到www这个文件夹

双击打开建立一个新文件夹(在这我命名为了表单的拼音你们可以自己命名为你们想命名的名字,切记不能用中文)

在打开刚刚建立好的文件夹创建两个文件分别命名为orderform.html和processorder.php(当然你也可以自己取名)

我们用编程软件打开这两个新建文件(这里我用的是Sublime Text 3)

我们首先给orderform.html写下如下代码

然后我们开始写建立表单

我们访问本地连接看一下效果

我们在给php写入代码

以下为注意事项

<!--<?php //为php代码 eoch为输出代码 $_POST为接收html提交过来的数据 $tireqty=$_POST['tireqty']

//$sj=$_POST['sj']

//$dz=$_POST['dz'] 为给建立的变量赋值? echo "$tireqty";为输出这个变量-->

首先我们写入和html一下的html代码

在写入php接收函数

完成效果

以下是html里的代码

<!DOCTYPE html>

<html>

<head>

<!--这里编码为utf-8国际编码-->

<meta charset="utf-8">

<!--这里为网站标题-->

<title>表单</title>

</head>

<body>

<!--action为提交的页面 method为提交类型 分为两种一种为post还一种为get -->

<form action="processorder.php" method="post">

<!--border="0"为边框粗细-->

<table border="0">

<!-- bgcolor="#cccccc"为表格背景颜色这里为灰色 -->

<tr bgcolor="#cccccc">

<td>参数</td>

<!-- aligan="center"为表格居中 -->

<td align="center">数据</td>

</tr>

<tr>

<td>姓名</td>

<!-- <input type="text" name="tireqty" size //这里为type为提交类型

text为文本类型 name为名称和class一样 size为字体大小-->

<td align="center"><input type="text" name="tireqty" size="3"/></td>

</tr>

<tr>

<td>手机</td>

<td align="center"><input type="text" name="sj" size="3"/></td>

</tr>

<tr>

<td>地址</td>

<td align="center"><input type="text" name="dz" size="3"/></td>

</tr>

<tr>

<!-- <input type="text" value="提交" value为input 元素的值 colspan为合并-->

<td colspan="0" align="center"><input type="submit" value="提交"/></td>

</tr>

</table>

</form>

</body>

</html>

以下是php中代码

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>接收</title>

</head>

<body>

<form>

<?php

$tireqty=$_POST['tireqty'];

$sj=$_POST['sj'];

$dz=$_POST['dz'];

?>

<table border="0">

<tr>

<td>参数</td>

<td align="center">数据</td>

</tr>

<tr>

<td>姓名</td>

<td align="center"><?php echo "$tireqty"; ?></td>

</tr>

<tr>

<td>手机</td>

<td align="center"><?php echo "$sj"; ?></td>

</tr>

<tr>

<td>地址</td>

<td align="center"><?php echo "$dz"; ?></td>

</tr>

</table>

</form>

</body>

</html>

谢谢观看,喜欢的就收藏加关注吧!