用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的方法,来提交数据。最后,对于有附加码才能登录的页面,也显得力不从心。希望高手可以继续。

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

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

HTML form 避免(回车)表单自动提交

1、JavaScript提交表单代码 document.forms["myform"].submit(); or document.myform.su...
  • kungfu_panda
  • kungfu_panda
  • 2014年09月20日 16:39
  • 1366

vc遍历网页表单并自动填写提交

1.独立代码 //-----------开始---------------------// #include #include #include #include #inclu...
  • u013037007
  • u013037007
  • 2015年12月08日 22:16
  • 777

MFC实现自动填写表单与自动提交表单

自动填写表单和自动提交表单可以利用在网页里自动注册,自动发帖,还可以让程序跟网页互动,这功能的使用还是比较广泛的,我说一下我一般用的自动填表跟自动提交表单的一些技巧,这些技巧,你可以结合一些扩展思维来...
  • luckyboy101
  • luckyboy101
  • 2013年07月14日 15:24
  • 1186

防止INPUT回车自动提交FORM表单

 form中的input只有一个,input获得焦点时按回车会form自动提交: html> head> meta charset="UTF-8"> title>testtitle> ...
  • beautifulsarah
  • beautifulsarah
  • 2016年12月06日 11:10
  • 335

C#实现网页表单自动提交

C#实现网页表单自动提交 2010-02-26 11:46 1373人阅读 评论(0) 收藏 举报 webbrowserc#objectnull测试user 最近一个项目要用到表...
  • anlun
  • anlun
  • 2014年12月29日 23:11
  • 354

记一次Pyhthon爬虫其之一——提交表单、模拟登录

使用python进行带验证码的表单提交与模拟登录,其中使用到了cookie自动获取与管理、head与data的获取与构造。...
  • shuiqukeyou12
  • shuiqukeyou12
  • 2016年08月11日 17:09
  • 502

Bootstrap validator 表单自动提交 和相关事件

po主在使用Bootstrap验证表单内容时遇到很奇怪的问题,自动提交表单。 大概描述一下问题: 我们这个form要求是有两个切换卡,而且两个切换卡里的input框要在一个form里同时提交到后台...
  • xiao_maoqiu
  • xiao_maoqiu
  • 2017年04月21日 18:29
  • 2504

HtmlUnit自动填写表单并提交

场景:对网页的表单进行自动填写并提交,如登录框,和文章http://blog.csdn.net/fjssharpsword/article/details/51480475类似,不同的是这次butto...
  • fjssharpsword
  • fjssharpsword
  • 2017年06月06日 08:18
  • 3083

WebBrowser控件表单(form)的自动填写和提交

http://www.sosuo8.com/article-2011/webbrowser-control-form-automatically-fill-and-submit.htm   话说有...
  • qq873113580
  • qq873113580
  • 2013年11月23日 21:16
  • 619
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用WEBBROWER自动提交表单!
举报原因:
原因补充:

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