zoukankan      html  css  js  c++  java
  • Delphi取Ajax网页内容

    在程序中使用TWebbrowser控件或者Indy中控件连接采用Ajax技术的网页,获得的网页源码中并不会有客户端更新的内容。在IE浏览器中的查看源文件同理也是看不到Ajax更新的内容。通过插件可以看到Ajax更新后的内容。问题是在程序中怎样来获得完整的网页内容?

    如果有Ajax更新,Webbrowser的DocumentComplete事件也不会被触发。

    其实完整的网页内容并不是不可以获得,使用一个简单的方法就可以:

    function GetHtml(const WebBrowser:TWebBrowser): string;
    var
      Doc: IHTMLDocument2;
    begin
      Doc := WebBrowser.Document as IHTMLDocument2;
      if Assigned(Doc) and Assigned(Doc.body) then
        Result := Doc.body.OuterHtml; //也可以用innerHTML取得其HTML文本
    end;

    这样获得的HTML内容中就包含了Ajax更新的内容。

    现在关键是没有好的办法来判断Ajax是否已更新完毕,由于采用的是异步更新,所以在判断上比较困难。上网搜索了一下,国外好像有比较复杂解决方案的,也没有研究过究竟可行否。

    做过网页内容采集软件的,不知道有没有好的办法来处理,欢迎指教。  :-)

  • 相关阅读:
    Java日志体系(1) —— 那些年那些事,那些日志的历史
    直播工作原理
    【PAT乙级 】1003. 我要通过!
    [牛客网刷题]被3整除
    [牛客网刷题]牛牛找工作
    Mybatis的简单分析
    数位DP
    正则表达式
    能量球
    从此,我们相伴,不离不弃
  • 原文地址:https://www.cnblogs.com/hackpig/p/1668566.html
Copyright © 2011-2022 走看看