0

我正在尝试创建一个图像下载器。基本上它应该通过一个网站并下载所有图像。我得到的错误是在 foreach 循环的第一行,System.NullReferenceException.

private void button1_Click(object sender, EventArgs e)
{
    WebBrowser browser = new WebBrowser();
    browser.DocumentCompleted += browser_DocumentCompleted;
    browser.Navigate("http://www.mysite.com");
}

void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    WebBrowser browser = sender as WebBrowser;
    HtmlElementCollection imgCollection = browser.Document.GetElementsByTagName("img");
    WebClient webClient = new WebClient();
    foreach (HtmlElement img in imgCollection)
    {
        string url = img.FirstChild.GetAttribute("src");
        webClient.DownloadFile(url, url.Substring(url.LastIndexOf('/')));
    }
}
4

3 回答 3

3

改变这个:

img.FirstChild.GetAttribute("src");

对此:

img.GetAttribute("src");
于 2013-07-17T15:43:12.593 回答
3

<img>元素没有子元素。

于 2013-07-17T15:40:41.610 回答
0

改变这个

 string url = img.FirstChild.GetAttribute("src");

 string url = img.GetAttribute("src");

因为 img 没有孩子。

于 2013-07-17T15:46:14.003 回答