我使用 MFC CHtmlView 类视图打开了目标网页,里面有个div如下,该div内容是通过ajax动态获取的,html源文件是没有内容的,打开网页后,内容已经显示出来了,请教如何获取到该div的内容?
7条回答 默认 最新
- 「已注销」 2023-02-23 11:55关注
参考GPT和自己的思路,你可以使用 IHTMLDocument2 接口来获取 CHtmlView 中的 HTML 文档对象,并通过 getElementById 方法获取指定的 div 元素。
以下是一个示例代码,可以获取名为 block_content 的 div 元素的内容:
// 获取 CHtmlView 中的 HTML 文档对象 IHTMLDocument2* pDoc = NULL; if (SUCCEEDED(m_pBrowserApp->get_Document((IDispatch**)&pDoc))) { // 获取名为 "block_content" 的 div 元素 VARIANT varDivID; VariantInit(&varDivID); varDivID.vt = VT_BSTR; varDivID.bstrVal = SysAllocString(L"block_content"); IDispatch* pDiv = NULL; if (SUCCEEDED(pDoc->getElementById(varDivID, &pDiv))) { // 获取 div 元素的 HTML 内容 IHTMLElement* pElem = NULL; if (SUCCEEDED(pDiv->QueryInterface(IID_IHTMLElement, (void**)&pElem))) { BSTR bstrHTML; if (SUCCEEDED(pElem->get_innerHTML(&bstrHTML))) { CString strHTML(bstrHTML); // 输出 div 元素的内容 TRACE(_T("div content: %s\n"), strHTML); SysFreeString(bstrHTML); } pElem->Release(); } pDiv->Release(); } VariantClear(&varDivID); pDoc->Release(); }
在上面的代码中,m_pBrowserApp 是 CHtmlView 类中的成员变量,用于获取 IWebBrowser2 接口的指针。getElementById 方法可以根据 div 元素的 ID 属性获取元素对象,get_innerHTML 方法可以获取元素的 HTML 内容。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 java写代码遇到问题,求帮助
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?