最近,在纵横中文网看漫画,可是目田国2M带宽的网页速度实在跟不上我的浏览速度,甚至有时候等上半天图片都完全加载。于是,想到做一个图片下载工具,全部下完后一次看个够。
我比较熟悉java,最先想到的方案是直接通过http获取图片,这个看起来没有太大的问题,但是经过研究纵横中文网是通过JavaScript进入下一页,我为了获取下一页的图片地址需要猜测图片地址的规律,或者读懂JavaScript自己拼这个地址,这样的话会稍微麻烦一点或者根本行不通(也许下一页是后台随机地址)。
正在痛苦该如何实现的时候,忽然发现微软平台下WebBrowser这个好东西,输入网站后可以编程与网页进行很多交互,比如JavaScript,我上面的方案改用WebBrowser后轻松获取下页网页地址,图片下载也用一个方法轻松搞定。
以下是代码片段:
//根据网页地址加载网页
webBrowser.ObjectForScripting = this;
webBrowser.Url = new Uri(tbAddress.Text);
//得到加载的网页内容 string txt = webBrowser.DocumentText;
//这里就是模拟网页JavaScript执行,进入下一个页面 webBrowser.Document.InvokeScript("doAfterPage");
//下载文件也超简单 new WebClient().DownloadFileAsync(uri, saveFile);
编译好的文件在这里下载。