屏蔽广告的原理、方法和实现:[3]封装成SDK
根据广告屏蔽的原理、方法和基本操作,对他们进行封装,以便以后的使用和二次开发。
工具/原料
VS2012集成开发环境。VS2010、VS2008、VS2005等均可以。
IE和IE开发者工具。IE8、IE9、IE10浏览器自带,其他较低的版本需要自己下载。
封装HDK
1、打开VS2012集成开发环境,新建“C#类库”工程,并命名为HDK,然后添加System.Windows.Forms和System.Drawing的引用。如图:
![屏蔽广告的原理、方法和实现:[3]封装成SDK](https://exp-picture.cdn.bcebos.com/05a320a23a42a07af9804080673834bb18efc127.jpg)
3、在HDK中添加类Element,这是HDK中的基础类。需要一个WebBrowser薪姚蟪食引用,是网页元素抓取的基础,最好在构造函数中赋值,并且不允许无参的构造函数,如下: public WebBrowser webBrowser; public Element(WebBrowser wb) { this.webBrowser = wb; }
4、封装直接元素抓取,即封装GetElementById、GetElementByPoint和GetElementByTagName函数。如下图:
![屏蔽广告的原理、方法和实现:[3]封装成SDK](https://exp-picture.cdn.bcebos.com/a31e1214c27bd282e4195df53cb1eef97ebd3624.jpg)
6、元素抓取的操作基本封装完成了,下面要对抓取的元素进行操作的封装。使用style方法,我们需要考虑原来的style是否已经存在,若存在则修改,不存在则添加。如下图:
![屏蔽广告的原理、方法和实现:[3]封装成SDK](https://exp-picture.cdn.bcebos.com/7efc527c34b33c41592a2ff2887de137c8762e24.jpg)
2、然后在button1的Click事件和webBrowser1的Document觊皱筠桡Completed事件中添加代码: private 即枢潋雳void button1_Click(object sender, EventArgs e) { //跳转到http://jingyan.baidu.com/article/fec4bce23e505cf2618d8bd3.html webBrowser1.Navigate("http://jingyan.baidu.com/article/fec4bce23e505cf2618d8bd3.html"); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { var em = new HDK.Element(this.webBrowser1); //id aside-ads-container,pn 1 var a = em.GetElementByParentFormId ("aside-ads-container", 1); a.Style = HDK.Element.GetNewStyleStr(a.Style, "display", "none"); }如下图:
![屏蔽广告的原理、方法和实现:[3]封装成SDK](https://exp-picture.cdn.bcebos.com/e076d77622bc7dc5bef7d7ec5e460596b9142924.jpg)