引言
想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习。
那么作为网页爬虫程序,最重要的就是html源码的获取了,通常的获取方式有几种:HttpWebRequest、WebRequest、WebClient、WebBrowser等。由于我这里写的爬虫软件针对的网站需要先登录才能看到小说内容,而我一次爬取的内容不多都是短篇小说,因此不需要考虑到爬取的速度,因此自然是打算使用WebBrowser来实现登陆后获取网页源码。而为了加快爬取速度我考虑多开几个WebBrowser线程,同时对多个页面进行采集,暂时不知道这个思路是否能够实现,这是后话了。(题外话,如果你要快速爬取大量网页,可以考虑使用WebClient,若有登录需求则进行模拟登录记录cookie,不过这样挺麻烦的)
问题
新建WPF项目后,第一件事就是吧WebBrowser控件拖一个到窗口中,由于我熟悉网站开发,因此xaml对我来说倒不是什么难事。可是在获取网页源代码这一步就坑爹了,WPF中WebBrowser的属性和方法似乎没有能够获取html 的!
实践
遇到问题先问搜索引擎,然而网上大家似乎都没有类似需求,全是WPF中如何用webbrowser操作html元素的,大概就是通过IHTMLElement接口操作DOM。不过既然都操作了DOM,那么获取html也是没问题的了。
1.引用中添加Microsoft.mshtml.dll
在中找到需要引用的项目