获取HTML元素“对于每个”循环

获取HTML元素“对于每个”循环

问题描述:

我已经开始做在Visual Basic中一些编程,我需要一些帮助。这可能是一个简单的问题,但我无法弄清楚。获取HTML元素“对于每个”循环

所以我创建了一个网页浏览器,我想获得在Facebook上的人的头像,并在图片框显示出来,也该人的姓名和一个TextBox显示。之后,程序应该将照片保存在硬盘上的文件夹中。

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 

所以程序应根据存在的文件夹路径(例如“1乔治Johnson.jpg”)的文件数量与文件名保存图片。但是会发生什么,它会保存5个不同的图像,因为我猜想有多个HTML元素可以匹配这些属性,因此For Each循环会带来更多结果。

有没有什么办法让一个HTML元素,而无需使用这种循环,只是得到我想要的特定元素?

+0

使其评估增加更多的具体标准,以你的'If'检查语句TRUE;只为你想要的特定元素 – har07 2014-09-20 05:22:25

如果你只是想在第一时间if语句的属性为true,加上“退出对于”结束时,如果前行。