2011-02-18 91 views

回答

1

您需要使用System.Net中的WebRequest類下載頁面的html。

然後,您可以解析HTML(使用HTML Agility Pack),然後使用WebRequest類提取圖像的URL並下載圖像。

下面是一些示例代碼,您開始:

static public byte[] GetBytesFromUrl(string url) 
{ 
    byte[] b; 
    HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url); 
    WebResponse myResp = myReq.GetResponse(); 

    Stream stream = myResp.GetResponseStream(); 
    using (BinaryReader br = new BinaryReader(stream)) 
    { 

     b = br.ReadBytes(100000000); 
     br.Close(); 
    } 
    myResp.Close(); 
    return b; 
} 

您可以使用此代碼下載原始字節爲某個網址(無論是網頁或圖像本身)。

+0

使用`WebClient`。 – SLaks 2011-02-18 00:18:24

+0

是的,這也是可能的http://stackoverflow.com/questions/1694388/webclient-vs-httpwebrequest-httpwebresponse – 2011-02-18 00:20:31

0
/// Returns the content of a given web adress as string. 
/// </summary> 
/// <param name="Url">URL of the webpage</param> 
/// <returns>Website content</returns> 
public string DownloadWebPage(string Url) 
{ 
    // Open a connection 
    HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(Url); 

    // You can also specify additional header values like 
    // the user agent or the referer: 
    WebRequestObject.UserAgent = ".NET Framework/2.0"; 
    WebRequestObject.Referer = "http://www.example.com/"; 

    // Request response: 
    WebResponse Response = WebRequestObject.GetResponse(); 

    // Open data stream: 
    Stream WebStream = Response.GetResponseStream(); 

    // Create reader object: 
    StreamReader Reader = new StreamReader(WebStream); 

    // Read the entire stream content: 
    string PageContent = Reader.ReadToEnd(); 

    // Cleanup 
    Reader.Close(); 
    WebStream.Close(); 
    Response.Close(); 

    return PageContent; 
} 
相關問題