Vb.net 获取不带“For Each”循环的HTML元素

Vb.net 获取不带“For Each”循环的HTML元素,vb.net,winforms,visual-studio-2010,visual-studio-2013,Vb.net,Winforms,Visual Studio 2010,Visual Studio 2013,我已经开始用VisualBasic做一些编程,我需要一些帮助。这可能是一个简单的问题,但我无法理解 因此,我创建了一个网络浏览器,我想在Facebook上获取一个人的个人资料图片,并将其显示在图片框中,还想在文本框中显示该人的姓名。之后,程序应将图片保存在硬盘上的文件夹中 Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles We

我已经开始用VisualBasic做一些编程,我需要一些帮助。这可能是一个简单的问题,但我无法理解

因此,我创建了一个网络浏览器,我想在Facebook上获取一个人的个人资料图片,并将其显示在图片框中,还想在文本框中显示该人的姓名。之后,程序应将图片保存在硬盘上的文件夹中

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

 Dim elemCollection As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("img")
    Dim fbPath As String = "C:\Users\" + Environment.UserName.ToString + "\Documents\FB Images\"


    For Each curElement As HtmlElement In elemCollection

        If curElement.OuterHtml.Contains("profilePic img") Then
            PictureBox1.ImageLocation = curElement.GetAttribute("src") 'Showing the profile pic in picture box
            TextBoxName.Text = curElement.GetAttribute("alt") 'Showing the name in a textbox
            Dim NumberOfFiles As Integer = System.IO.Directory.GetFiles(fbPath).Length 
            Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
            PictureBox1.DrawToBitmap(bmp, PictureBox1.ClientRectangle)
            bmp.Save(System.IO.Path.Combine(fbPath, CStr(NumberOfFiles) + TextBoxName.Text + ".jpg"), System.Drawing.Imaging.ImageFormat.Jpeg)
        End If

    Next
End Sub
因此,程序应该根据pathe.g“1 George Johnson.jpg”文件夹中的文件数,使用文件名保存图片。但是发生了什么,它保存了5个不同的图像,因为我猜有多个HTML元素与这些属性匹配,所以For-Each循环会产生更多的结果


是否有任何方法可以不使用此循环而获取HTML元素并仅获取我想要的特定元素?

如果您只希望属性的If语句第一次为true,请在结束If之前为该行添加Exit

向If-checking语句添加更具体的条件,使其仅对所需的特定元素计算为True