none
Como faz para pegar div class de um site para um textbox? RRS feed

  • Pergunta

  • Isso deve ser uma coisa bem simples, mas eu raramente uso VB 2012, é to a noite toda a procura disso.

    Bom vou dar 2 exemplos, O primeiro é parecido, o Segundo é o modo que eu to querendo.

    1- Primeiro exemplo:

    -Código fonte: <span id="fb-timeline-cover-name">João Victor</span>
    -Comando VB.NET: textbox1.Text = WebBrowser1.Document.GetElementById("fb-timeline-cover-name").InnerText
    -Função: Pega o nome do usuário (João Victor) pela ID é colocar na Textbox.



    2- Segundo exemplo:

    -Código fonte: <div class="watch-view-count">142.701 visualizações</div>
    -Comando VB.NET: é o que eu estou querendo.
    -Função: Pega a quantidade de  visualização do vídeo (142.701 visualizações) pela DIV CLASS é colocar na textbox

    quarta-feira, 4 de janeiro de 2017 12:55

Respostas

  • Dps de muita pesquisa aqui esta:

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    
            Dim divs = WebBrowser1.Document.Body.GetElementsByTagName("div")
    
            For Each d As HtmlElement In divs
                If d.GetAttribute("className") = "watch-view-count" Then
                    TextBox1.Text = d.InnerText
                End If
            Next
    
        End Sub


    quinta-feira, 5 de janeiro de 2017 03:17

Todas as Respostas

  • Olá,

    Tenta dessa forma:

    For Each item As HtmlElement In WebBrowser1.Document.GetElementsByTagName("div")
    	If item.GetAttribute("class").Equals("watch-view-count") Then
    		textbox1.Text = item.InnerText
    		Exit For
    	End If
    Next
    

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quarta-feira, 4 de janeiro de 2017 13:03
  • O comando não esta fazendo efeito aqui, coloco um vídeo para rodar no WebBrowser1, clico no botão onde esta localizado o comando é a textbox não muda nada.
    quarta-feira, 4 de janeiro de 2017 13:15
  • Debugue e veja e acompanhe a execução para ver o que ocorre

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quarta-feira, 4 de janeiro de 2017 13:30
  • Nenhum erro, abaixo uma lista de como esta meu projeto de teste:

    TextBox1 = Receber DIV CLASS
    Button1 = Puxar a DIV CLASS para textbox1
    WebBrowser1 = Onde o vídeo esta  rodando
    -
    txtUrl = textbox para fazer pesquisa
    bntIr = button fazer pesquisa
    ------

    Comandos no projeto

    Public Class Form1
    
    
        Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
            txtUrl.Text = WebBrowser1.Url.AbsolutePath
        End Sub
        Private Sub bntIr_Click(sender As Object, e As EventArgs) Handles bntIr.Click
            WebBrowser1.Navigate(txtUrl.Text)
        End Sub
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            For Each item As HtmlElement In WebBrowser1.Document.GetElementsByTagName("div")
                If item.GetAttribute("class").Equals("watch-view-count") Then
                    TextBox1.Text = item.InnerText
                    Exit For
                End If
            Next
        End Sub
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
        End Sub
    End Class


    quarta-feira, 4 de janeiro de 2017 13:51
  • Dps de muita pesquisa aqui esta:

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
    
            Dim divs = WebBrowser1.Document.Body.GetElementsByTagName("div")
    
            For Each d As HtmlElement In divs
                If d.GetAttribute("className") = "watch-view-count" Then
                    TextBox1.Text = d.InnerText
                End If
            Next
    
        End Sub


    quinta-feira, 5 de janeiro de 2017 03:17