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

7.16 Marked to Write....


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

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

我也没干啥呀。

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

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


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

有时候明明就仅仅NAVI了一个URL。但是却会跳出来很多个DocumentCompleted事件的响应。

所以这里研究了一个解决方法:

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


分析了下面多个DC事件的原因,大概就是一个mainpage里面有好多个framework子网页。

对。有时候好像还有js载入引起的DC(可能有。忘记了,都过去这么久了)

处理办法也非常easy。就例如以下这一行就是精髓所在。

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

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



原文地址:https://www.cnblogs.com/clnchanpin/p/6884916.html