快速业务通道

如何分析网页元素并进行相应处理

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29

如何分析网页元素,然后进行相应处理,比如填表,递交等等

#include <Mshtml.h>
AnsiString __fastcall TForm3::Submit(void)
{
IHTMLDocument2 *pHTMLDoc = NULL;
LPDISPATCH pDisp = NULL;
pDisp =CppWebBrowser1->Document;
if(pDisp)
  {
  if (SUCCEEDED(pDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHTMLDoc)))
   {
   pDisp->Release();
   IHTMLElementCollection *pelement;
   if(pHTMLDoc->get_forms(&pelement)!=S_OK)
    {
    pHTMLDoc->Release();
    pDisp->Release();
    pelement->Release();
    return "1发送失败";
    }
   pDisp->Release();
   tagVARIANT a,i;
   a.vt=VT_UI4;
   a.lVal=0;//这个值为你所要填写的表单在整个网页中的顺序,0为第一个表单
   if(pelement->item(a,i,&pDisp)!=S_OK)
    {
    pelement->Release();
    pDisp->Release();
    return "2发送失败";
    }
   pelement->Release();
   IHTMLFormElement* pFormElem=NULL;
   if(pDisp)
    {
    if(!SUCCEEDED(pDisp->QueryInterface(IID_IHTMLFormElement,(LPVOID*)&pFormElem)))
     {
     pFormElem->Release();
     pDisp->Release();
     return "3发送失败";
     }
    }
   else
    {
    return "31发送失败";
    }
   pDisp->Release();
   LPDISPATCH pDisp_msg = NULL;
   tagVARIANT phone,msg,empty;
   phone.vt=VT_UI4;
   phone.lVal=0;//这个值为Input框在表单中的顺序
   msg.vt=VT_UI4;
   msg.lVal=1;//这个值为Text文本框在表单中的顺序
   if((pFormElem->item(phone,empty,&pDisp)!=S_OK)||(pFormElem->item(msg,empty,&pDisp_msg)!=S_OK))
    {
    pFormElem->Release();
    if(pDisp)
     pDisp->Release();
    if(pDisp_msg)
     pDisp_msg->Release();
    return "4发送失败";
    }
   IHTMLInputTextElement* phoneElem=NULL;
   IHTMLTextAreaElement* msgElem;
   if(!pDisp||!pDisp_msg)
    return "11失败";
   if (!SUCCEEDED(pDisp->QueryInterface(IID_IHTMLInputTextElement, (void**)&phoneElem))||(!SUCCEEDED(pDisp_msg->QueryInterface(IID_IHTMLTextAreaElement, (void**)&msgElem))))
    {
    if(phoneElem)
     phoneElem->Release();
    if(msgElem)
     msgElem->Release();
    if(pDisp)
     pDisp->Release();
    if(pDisp_msg)
     pDisp_msg->Release();
    return "5发送失败";
    }
   WideString s_phone,s_msg;
   s_phone="888888"
   s_msg="你好";
   phoneElem->put_value(s_phone.c_bstr());//填写
   msgElem->put_value(s_msg.c_bstr());//填写
   pFormElem->submit();//提交
   phoneElem->Release();
   msgElem->Release();
   pDisp->Release();
   pDisp_msg->Release();
   pFormElem->Release();
   return "发送成功";
   }
  }
return "发送失败";
}

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号