2012-12-17 102 views
0

我正在研究一種從網頁抓取圖像的快速工具。目前,我使用WebClient獲取頁面的源數據,將圖像URL從源代碼中解析出來,然後使用WebClient.DownloadFile將它們單獨下載到文件夾中。這可能需要很長時間。
據我所知,大部分時間是由於我的連接和下載數據。
有沒有其他更有效的方法來解決這個問題,無論是C#HTML解析庫還是其他的東西?優化網頁抓取

回答

1

您可以使用多個線程,這將打開到網頁的多個併發HTTP連接。

一個好方法是實現生產者/消費者模式:有一個線程可以獲取並分析包含圖像的HTML,然後將圖像URL排隊到像BlockingCollection之類的東西。讓多個線程從隊列中讀取圖像URL並同時下載圖像。

http://msdn.microsoft.com/en-us/library/dd997371.aspx

如果你是彌補尖端,這個類,如果問題是非常適合TPL數據流(替代的BlockingCollection)。

http://msdn.microsoft.com/en-us/devlabs/gg585582.aspx