用WEBBROWER自动提交表单!

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值