如何处理页面多次加载的问题

工作中需要读取一个网页的内容,貌似很简单,但总也读不到完整的内容。经过页面分析,原来该页面的部分内容是通过调用js来获取的。再一看被调用的js文件,相当复杂,立刻让我打起了退堂鼓。。。 为了省点事,加之不用太考虑效率的问题,我就改用WebBrower控件来读取页面,然后再从WebBrowser控件的InnerText属性获取文本内容。

 

但如何从WebBrowser控件来获取文本呢? 我开始在DocumentCompleted事件中读取InnerText,但结果不行,仍然是不完整的内容。后来上网了解到对于动态页面,DocumentCompleted事件其实是不可靠的,你需要自己判断页面是否加载完毕,在加载完毕后再去读取InnerText属性。

 

看了网上的一些做法,没找到简单易行的,最后自己探索了一个方法,对于效率要求不高的情况下,可以考虑使用。

 

1、增加一个Timer,设定好间隔事件。

2、在全局变量中增加一个变量做标志。

3、在WebBrowser的DocumentCompleted事件中把标志设为true;

4、在Timer的Tick事件中检测标志为false则返回,为true则下一步。

5、在Timer的Tick事件中检测WebBrowser的Document属性的All属性(可能是All[1]这样的)的InnerText值,如果出现了页面完成时的标记(根据实际情况设置)则对InnertText进行后续处理,并关闭Timer。否则返回。

6、如果是循环调取页面,那还需要在处理完InnerText后恢复标志的值为false,同时给WebBrowser设定新的Url。

 

综上,其原理就是每间隔一定事件检测一下WebBrowser的状态和属性,直到出现了自己需要的内容再进行处理。该方案可以通过调整Timer的间隔时间获得一个较为理想的处理效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值