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是否已更新完毕,由于采用的是异步更新,所以在判断上比较困难。上网搜索了一下,国外好像有比较复杂解决方案的,也没有研究过究竟可行否。

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

相关阅读 >>

Delphi tidhttp抓取页面信息

Delphi edit,memo中禁用ctrl+v

Delphi 怎么计算一个memo中输入的汉字数目

Delphi根据进程id获取进程路径

Delphi 系统日期时间格式设置

Delphi tradiogroup 单选分组框组件

Delphi 检测进程是否存在

Delphi if语法,弹出提示框,不等于写法,判断是否为空

Delphi中datetimepicker控件同时输入日期和时间

Delphi - system.runerror

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...