如何获得网页中的某个对象?

CPO 2008-05-24 07:59:53
目前,

有的网页内的超级链接是包含在类似
<li /li> 或 <ui /ui> 内的
(并不是直接就写<a herf......的),

怎么获得这些"li"、"ui"对象
并得到它们包含的文本,或触发它们的链接动作呢?

谢谢,在线等。
...全文
115 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
守钱 2008-10-29
  • 打赏
  • 举报
回复
这个调用的接口是已经实现好的吗?关于这个接口详细的信息或关键字,能不能提供。
jxw1987628 2008-05-29
  • 打赏
  • 举报
回复
。。。
上面已经写得很清楚了,,
CPO 2008-05-29
  • 打赏
  • 举报
回复
如何识别网页中是否有某个字或词呢?
(或者包含在特定标签里的文本或标题呢?)
jxw1987628 2008-05-25
  • 打赏
  • 举报
回复


IDispatch* pDisp=NULL;
IWebBrowser2 *iWebBrowser=NULL;
IHTMLDocument2* pDoc=NULL;
IHTMLElementCollection*pColl=NULL;

//获取IWebBrowser2接口
CoCreateInstance(CLSID_CppInternetExplorer,NULL,CLSCTX_LOCAL_SERVER,IID_IWebBrowser2,(void**)&iWebBrowser);

//注意第1个参数是url,也就是html文档所在的地方,你也可以用xml文档测试下
iWebBrowser->Navigate2(TVariant(Edit1->Text),TNoParam(),TNoParam(),TNoParam(),TNoParam());


//得到Html文档
iWebBrowser->get_Document(&pDisp);
pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc);
pDisp->Release();


//得到HtmlElementCollection
pDoc->get_all(&pColl);
///////////////////////////////////////////////////////////
//所有那种有文字的链接 其实就是IHTMLElement 其中InnerText就是他们上面的文字
IHTMLElement *elem=0;//基本上可以得到所有的标签
for(int i=0;i <itemcount;i++)
{
pColl->item(TVariant(i),TVariant(i),&pDisp);
//任意元素的获取
pDisp->QueryInterface(IID_IHTMLElement,(void**)&elem);
}


楼主可以查看更加详细的msdn内容!



不好意思,忘记了格式
jxw1987628 2008-05-25
  • 打赏
  • 举报
回复
貌视你那是xml文档

而不是纯粹的html文档,html文档好像没有<li /li>这样的标记!

贴点我以前写的操作IWebBrowser2接口的代码,不知道能不能帮你!




IDispatch* pDisp=NULL;
IWebBrowser2 *iWebBrowser=NULL;
IHTMLDocument2* pDoc=NULL;
IHTMLElementCollection*pColl=NULL;

//获取IWebBrowser2接口
CoCreateInstance(CLSID_CppInternetExplorer,NULL,CLSCTX_LOCAL_SERVER,IID_IWebBrowser2,(void**)&iWebBrowser);

//注意第1个参数是url,也就是html文档所在的地方,你也可以用xml文档测试下
iWebBrowser->Navigate2(TVariant(Edit1->Text),TNoParam(),TNoParam(),TNoParam(),TNoParam());


//得到Html文档
iWebBrowser->get_Document(&pDisp);
pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc);
pDisp->Release();


//得到HtmlElementCollection
pDoc->get_all(&pColl);
///////////////////////////////////////////////////////////
//所有那种有文字的链接 其实就是IHTMLElement 其中InnerText就是他们上面的文字
IHTMLElement *elem=0;//基本上可以得到所有的标签
for(int i=0;i<itemcount;i++)
{
pColl->item(TVariant(i),TVariant(i),&pDisp);
//任意元素的获取
pDisp->QueryInterface(IID_IHTMLElement,(void**)&elem);
}



楼主可以查看更加详细的msdn内容!
ccrun.com 2008-05-25
  • 打赏
  • 举报
回复
在XHTML 1.0的标准中,<li>标签必须关闭,也就是说必须有配对的</li>

如楼上所说,用IHTMLDocument2接口完全可以搞定。

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧