2009-12-24 65 views
4

如何下載使用C#網頁的網頁?如何下載使用C#

+0

當你說「下載」,你的意思是你想要顯示的頁面,將其HTML保存到一個文件,或什麼? – DOK 2009-12-24 20:22:51

回答

13

你可以使用WebClient

using (var client = new WebClient()) 
{ 
    string content = client.DownloadString("http://www.google.com"); 
} 
6

Darin的回答了這個,但另一種方法只需打開流:

FileStream s = new FileStream("http://www.someplace.com/somepage.html"); 

...然後閱讀,就好像它是一個正常的文件。

4

如果你做的URL一些沉重的REST風格的節目,你可能要考慮可與REST Starter Kit Preview 2 HttpClient的。有了這個,你可以做這樣的事情:

using (var client = new HttpClient()) 
{ 
    var page = client.Get("http://example.com").EnsureStatusIsSuccessful() 
        .Content.ReadAsString(); 
} 
0

下載會是什麼達林季米特洛夫描述的最簡單方法。

如果你想把所有的資源網頁,例如圖像,CSS。
你必須解析HTML代碼DOM您下載後。
要做到這一點的最佳方式似乎是Html Agility Pack

1

使用WebClient類,然後設置請求標頭,如果站點塊頁面的蜘蛛。

using System; 
using System.Net; 
using System.IO; 

public class Test 
{ 
    public static void Main (string[] args) 
    { 
     if (args == null || args.Length == 0) 
     { 
      throw new ApplicationException ("Specify the URI of the resource to retrieve."); 
     } 
     WebClient client = new WebClient(); 

     // Add a user agent header in case the 
     // requested URI contains a query. 

     client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 

     Stream data = client.OpenRead (args[0]); 
     StreamReader reader = new StreamReader (data); 
     string s = reader.ReadToEnd(); 
     Console.WriteLine (s); 
     data.Close(); 
     reader.Close(); 
    } 
}