用WEBBROWER自动提交表单!

原创 2004年07月30日 14:24:00

经常看到网络上面有网友问如何自动提交表单,比如:如何自动登录论坛,自动登录到邮箱等等。

今天,我介绍我使用的一种方法--使用WEBBROWER来提交。

原理:利用DELPHI自带的webbrower控件,显示页面,然后,获取对象docment,利用程序分析form架构,填写数据。

下面,我们就来做一个最简单的自动提交程序。

开发步骤

step1:新建一个工程

step2:在窗体上放控件webbrower,放一个button按钮。

step3:在窗体的oncreate事件里面写如下代码: WebBrowser1.Navigate('你所要提交的页面地址');

step4:button1的onclick事件写出如下代码

var
  myitem:Olevariant;
  i:integer;
begin

  myitem := WebBrowser1.Document;
  for i := 0 to myitem.all.length - 1 do
  begin
    if myitem.all.item(i).tagName = 'SELECT' then  // 下拉框选择
    begin
      //myitem.all.item(i).value:='2';  // 从下拉框中选中第2项
    end;

    if myitem.all.item(i).tagName = 'INPUT' then
    begin
      if Uppercase(myitem.all.item(i).type)='RADIO' then
      begin
        if myitem.all.item(i).value='NODE' then myitem.all.item(i).checked:=true; // 选中值
      end;

      if Uppercase(myitem.all.item(i).type)='TEXT' then
      begin
        if Uppercase(myitem.all.item(i).name)='USERNAME' then myitem.all.item(i).value:='lovefox';
        if Uppercase(myitem.all.item(i).name)='SUBJECT'  then myitem.all.item(i).value:='你的主题';

      end;

      if Uppercase(myitem.all.item(i).type)='PASSWORD' then
      begin
        if Uppercase(myitem.all.item(i).name)='PASSWORD' then myitem.all.item(i).value:='abcd123';
      end;

      if Uppercase(myitem.all.item(i).type)='SUBMIT' then
      begin
        if Uppercase(myitem.all.item(i).name)='TOPICSUBMIT' then  myitem.all.item(i).click;  // 点击提交键
      end;

    end;//Tagname = Input

    if myitem.all.item(i).tagName = 'TEXTAREA' then  // 多行文本
    begin
      if UpperCase(myitem.all.item(i).name)='MESSAGE' then myitem.all.item(i).value:='正文内容';
    end;

  end;//for i
 
end;

step5:编译运行。

说明:tagname属性指页面元素的类型,常见的有input、textarea、select、submit等,而像input又可以通过type(类型),来区别是什么样的元素,比如:单行文本text,密码password等最后,value属性就是对 指定的页面元素进行赋值。

掌握了这些,就可以灵活运用,比如用ini文件存储所要访问的页面地址以及所要提交的元素类型名称等,这样,通过配置,就可以访问不同的网站,完成诸如论坛自动发表文章,自动登录web邮件页面等等。

缺点:webbrwoer要先显示页面,才可以进行提交,速度上比较慢,对于只要提交数据而无需查看的,则显得不够简洁。另外,多个论坛同时提交某篇文章时,要登录多次几个不同的网站,也不够合理。希望,高手可以指点,如何使用socket的方法,来提交数据。最后,对于有附加码才能登录的页面,也显得力不从心。希望高手可以继续。

C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录

C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录 最近学习C#网络编程中,想实现网页自动登录并提交GET/POST信息,再实现循环登录不断发送报文给服务器,服...
  • yinbucheng
  • yinbucheng
  • 2017-03-21 17:58:20
  • 512

C# WebBrowser自动填表与提交

C# WebBrowser自动填表与提交 默认分类2007-04-18 15:47:17阅读57评论0  字号:大中小 订阅要使我们的WebBrowser具有自动填表、甚至自动提交的功能,并不困难。 ...
  • hanghangaidoudou
  • hanghangaidoudou
  • 2010-12-28 08:54:00
  • 3752

C# webBrowser 自动表单提交问题

公司每天都要平凡登录几个特定网站,每次输帐号密码,很是不爽. 利用C# webBrowser 想自动填表提交登录. 结果发现其中有被登录网站表单中的登录按扭没有name名字 表单如下所示...
  • lc547913923
  • lc547913923
  • 2013-12-26 21:32:42
  • 1946

C# WinForm webBrowser控件使用实例,自动填写表单和提交

1.窗体2.后台代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Dat...
  • sven_xu
  • sven_xu
  • 2015-06-02 09:20:35
  • 1117

关于c#的webbrows控件自动填写表单并获取提交后的网页内容

由于项目需要,需要获取网页内容并自动填写表单,所以决定使用webbrowser控件。经过笔者一番百度,我再一次觉得,网上的内容少之又少,大多数都是提交完表单就没事了,那获取提交表单后怎么知道成没成功啊...
  • u011412226
  • u011412226
  • 2016-03-28 20:42:22
  • 2913

转:C# 自动填表 & 关于WebBrowser submit

转:http://blog.chinaunix.net/u/884/showart_243945.html公司上网首先需要安全认证,我嫌每次输入用户名、密码太麻烦,而我又使用IE7、Maxthon、f...
  • flyskylf
  • flyskylf
  • 2007-11-07 13:19:00
  • 2225

JS自动提交表单

$("form).submit();可以替代submit按钮,直接提交表单,但使用时在form中不能添加submit按钮,否则不能使用该方法提交。但若是使用该方法绑定提交前激发的事件仍有效。如: ...
  • haoui123
  • haoui123
  • 2017-07-27 10:14:36
  • 813

Excel2007 VBA使用WebBrowser控件登录12306网站的演示

  • 2012年01月18日 12:41
  • 82KB
  • 下载

利用JS实现表单的自动提交

今天需要将一个chat整合到客户的网站上去,实现网站的注册用户登录本网站之后点击某个链接能够直接登录到chat上去。我保留了chat原有的登录界面,采用JS技术当页面跳转过来的时候自动填充表单,并自动...
  • ty744321366
  • ty744321366
  • 2014-06-30 18:07:31
  • 1168

javascript实现自动提交form表单

  • 2015年06月18日 03:04
  • 1KB
  • 下载
收藏助手
不良信息举报
您举报文章:用WEBBROWER自动提交表单!
举报原因:
原因补充:

(最多只允许输入30个字)