網站管理員希望將別人的整站數據下載到自己的網站里或者將別人網站的一些內容保存到自己的服務器上。從內容中抽取相關的字段,發布到自己的網站系統中。有時需要將網頁相關的文件也保存到本地,如圖片、附件等。
圖片采集軟件能采集任何網站的各種格式圖片,實現把所有文章、新聞、帖子等中間的圖片全部有有序列的分類后保存到您的計算機上等功能,可以把任何論壇網站的所有帖子的圖片采集到本地,輕松過濾廣告等,是網站、論壇站長和喜歡收集美圖的朋友的必備工具。
本文演示使用C# WebBrowser控件實現自動識別下一頁,按標題分類,圖片自動下載(不重復),效果如下圖1所示。在隨附的代碼下載中提供了完整的源代碼。
圖1 效果圖
演示程序結構
創建演示程序,我在Visual Studio 2013 選擇新建C#Windows窗體應用程序命名為ImgSpider,添加Controls文件夾包含包含封裝label,textbox控件;Core文件夾內有字典實體Entity用到的基類;Entity文件夾有讀取配置文件dict.xml的映射類;Helper文件夾有DownLoadHelper用於下載圖片,HtmlParserHelper解析HTML,XmlHelper讀取XML文檔;窗體文件frmAutoBorwser是程序的操作界面。圖2 顯示了演示程序的整體結構。
程序執行
窗體文件frmAutoBorwser
在窗體文件frmAutoBorwser使用到的控件,
第一,WebBrowser控件
WebBrowser 是一個 .NET 控件類,在 .NET Framework 2.0 版中新增。WebBrowser 類使用戶可以在窗體中導航網頁。使用 WebBrowser 控件可以在 Windows 窗體應用程序中承載網頁以及支持瀏覽器的其他文檔。例如,可以使用 WebBrowser 控件在應用程序中提供基於 HTML 的集成用戶幫助或 Web 瀏覽功能。此外,還可以使用 WebBrowser 控件向 Windows 窗體客戶端應用程序添加基於 Web 的現有控件。
第二,Timer 控件
通過引發 Timer 事件,Timer 控件可以有規律地隔一段時間執行一次代碼。
第三,DataGridView 控件
將數據綁定到 DataGridView 控件非常簡單和直觀,在大多數情況下,只需設置 DataSource 屬性即可。
點擊采集圖片按鈕
WebBrowser.Navigate方法導航網頁到采集的起始網址。要注意WebBrowser控件加載完成后,才可以繼續采集操作。通過Timer控件有規律的間隔執行,WebBrowser控件加載完后要采集的任務。
獲取當前頁標題URL,判斷是否已經下載
處理需要下載的標題URL,WebBrowser導航到指定URL
獲取當前標題圖片URL,並且WebBorwser導航到下一張圖片URL
下載圖片,判斷是否按標題拆分,更新Access數據庫
DownLoadHelper.cs文件的主要方法是
下載圖片
HtmlParserHelper.cs文件的主要方法
第一,獲取當前圖片URL和下一張圖片URL
第二,獲取當前頁URL和下一頁URL
結束
本文演示使用C# WebBrowser控件實現圖片采集軟件,自動翻頁,自動分類(收集美圖必備工具),效果如下圖1所示。在隨附的代碼下載中提供了完整的源代碼。完整的源代碼下載鏈接