首页 > 代码库 > 一个Navi过程下多个DocumentCompleted事件问题的解决办法

一个Navi过程下多个DocumentCompleted事件问题的解决办法

7.16 Marked to Write....


七月份马克的一篇文章了,今天才想起来把他写完,呵呵。

原本是七月份用来做微博爬虫的,后来发现新浪对机器人的检测不好绕过,连简单地访问都会被检测出来,后来还封掉了一个小号。。。我也没干啥呀。

这新浪,纯HTML访问不让也就算了,连OAuth2.0里很多接口都不能用了,这样子爬数据的难度可就大大加大了。

废话不多说--------------------------------------------------------------------------------------------------------


在使用webbrowser控件的时候经常要涉及到DocumentCompleted事件,

有时候明明就只NAVI了一个URL,可是却会跳出来许多个DocumentCompleted事件的响应。所以这里研究了一个解决方法:

通过事件传过来的URL判断!


分析了以下多个DC事件的原因,大概就是一个mainpage里面有好多个framework子网页。对,有时候好像还有js加载引起的DC(可能有,忘记了,都过去这么久了)

处理办法也很简单,就如下这一行就是精髓所在。

if (e.Url.ToString().IndexOf(youMatchUrl) == 0)

通过DC事件传过来的e参数获取实际响应的地址,that is to say,e.Url就是实际上完成的网页的URL,而youMatchUrl就是你所要匹配的URL,具体是==0还是==多少,自己根据实际情况写条件语句就行了。
            



一个Navi过程下多个DocumentCompleted事件问题的解决办法