使用了IXMLHTTPRequest取得了responseText之后如何分析网页中的内容呢?

flyboy81 2007-02-05 10:03:48
hr = pHttpReq.CreateInstance("Msxml2.XMLHTTP");
pHttpReq->open("POST", _T("http://local/home.php"), vAsync, vUser, vPassword);
pHttpReq->setRequestHeader("Connection", "close");
pHttpReq->setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
pHttpReq->send(vData);
_bstr_t bsResponse = (char*)pHttpReq->responseText;

到这里调试的时候能看到bsResponse中有网页的数据,网页不是XML的,
接下来该如何分析网页的数据呢?但是我不能肯定bsResponse中的数据是不是完整的。
我使用过IXMLDOMDocumentPtr, 在loadXML的时候就OVER了,问题不明。
希望能得到各位的帮助,刚刚学习此类编程。
...全文
528 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyboy81 2007-02-06
  • 打赏
  • 举报
回复
问题解决了,取得responseText之后,考虑到CString里面,自己对CString 进行分析,查找自己需要的链接,呵呵,比IXMLDOMDocumentPtr简单,我觉得,我只是要一些链接而已。
ribut9225 2007-02-06
  • 打赏
  • 举报
回复
嘿嘿。。。
偶好久都没看到 jiangsheng(蒋晟.Net[MVP]) 说中国话了
蒋晟 2007-02-06
  • 打赏
  • 举报
回复
1 you need an HTML parser like http://www.codeproject.com/useritems/HTMLParse.asp
2 XMLHTTPRequest is based on HTTP, which is not different the protocol used by Internet Explorer.
flyboy81 2007-02-05
  • 打赏
  • 举报
回复
XMLHttpRequest.readyState 为(4) COMPLETED的时候表明页面已经载入完毕了。
我在Open的时候,第三个参数vAsync设置的为FALSE,
调试了一下,网页数据应该没有问题,长度也对,那看来主要是网页不是XML的原因,不能使用IXMLDOMDocument接口了。
接下来从bsResponse 中查找自己需要的网页上的信息了,我考虑一个字符一个字符的比较。
有没有更好的办法呢?正则表达式?

还有一个问题想问问,在这里我使用了IXMLHTTPRequest访问网页数据,那别人还会使用一些网络侦测软件侦测到我open时打开的网址,还有send出去的data么?
薛定谔之死猫 2007-02-05
  • 打赏
  • 举报
回复
微软的DOM有专门标志位判断是否完成文档的载入的,至于由于网页内容不符合XML语法规范,那就只能靠正规表达式之类的进行查找分析,看看MS的DOM SDK,说的蛮详细的。

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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