我曾經寫過一個博客下載工具:
博客園博客下載工具,可以主動搜索某人的blog,並以MHTML格式保存到本地文件夾脫機瀏覽。
在這篇文章里面,我寫了如何制作一個下載工具的思路,但是我沒有講我為什么要寫這樣一個下載工具:
很簡單:公司不允許上外網。
工具的不足:
上面的那個工具有一點不足,它只能搜索博客園的某個名人的博客文章,但是有時候我想要搜索的可能是某個關鍵字,比如當我需要silverlight的資料的時候,我可能會將我知道的幾個博客中搜到的silverlight的文章全部下過來,比如msdn,codeproject,stackoverflow,博客園。。
解決方案:
可以自動構造搜索的字符串,然后對要下載的鏈接進行正則匹配。
如下圖所示:
在這里我想在博客園中下載silverlight的資料,大概是1到500頁之間的博客,搜索到的文章必須匹配到正則。
點擊生成Url就會生成如下圖的Url:
有了這些Url,自然就需要東西來下載了,
於是我寫了一個Client來將Url保存成mhtml文件,這個在我以前的文章中可以找到保存成mhtml的原理。
但是這個使用這種方案有一個我無法解決的問題,那就是保存成mhtml的時候,有時候微軟的組件會拋出異常,這個異常無法捕捉,它直接會導致程序退出,我曾經嘗試過創建應用程序域來保存mhtml,但是依然會導致整個程序退出,所以我寫了一個server來監視client,如果client退出的話,server就重啟client,
在這里選擇了包含下載路徑的download.txt,點擊開啟跟蹤就會自動下載了,client是后台運行的。
上面演示了如何從博客園下載關於silverlight的文章。
下面是msdn的:
下面是CodeProject的:
完整的源代碼如下:BlogDownLoader.rar
這個工具是一年前寫的,時間比較倉促,代碼命名是不推薦的,尚未進行代碼重構,希望大家對代碼本身的質量不要太過執着。








