Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lucas moraes10

vb 2010 Ler tags um HTML de um controle WebBrowser mostra em textbox

Recommended Posts

Olá meus colegas do fórum,

Venho até vocês mais uma vez pedir uma ajuda de vocês.

Acontece que tenho um formulário e nele tenho um controle webbrowser onde carrego um determinado site.
Preciso "ler" os dados de uma tag e jogá-los num Listbox ou Textbox.

Seria algo como por exemplo:
Código HTML da página:
<li class="home"> <td class="dados" style="text-align: right;">Evandro Araújo</td> <td class="dados" style="text-align: right;">Rua 1, Q 3</td> </li>  <li class="home"> <td class="dados" style="text-align: right;">Fulano de Tal</td> <td class="dados" style="text-align: right;">Rua 9, Q 7</td> </li>
Resultado no ListBox no VB:
Evandro Araújo | Rua 1, Q 3
Fulano de Tal | Rua 9, Q 7

Lembrando que a quantidade dos "registros" sempre muda.

Maiores interações, por favor, perguntem.

De já agradeço a colaboração dos amigos.
Muito obrigado.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso,
ai no caso teria como eu fazer usando esse comando também sendo não está dando certo ele veja

Private Sub cmdRecuperarListagemDeContas_Click()
Dim sTempFile As String
Dim sTempLineInput As String
Dim sTempItemIndex As String
Dim iItemIndex As Integer

iItemIndex = 0

sTempFile = App.Path & "\TempSourceCode.txt"

Open sTempFile For Output As #1
Print #1, Me.wbMain.Document.Body.InnerHTML
Close #1

Open sTempFile For Input As #1
While Not EOF(1)
Line Input #1, sTempLineInput

sTempLineInput = Replace(sTempLineInput, "</TD>", "")
sTempLineInput = Replace(sTempLineInput, "</TR>", "")

If VBA.Left(sTempLineInput, 42) = "<TD style=""TEXT-ALIGN: right"" class=dados>" Then
sTempLineInput = Replace(sTempLineInput, "<TD style=""TEXT-ALIGN: right"" class=dados>", "")

Select Case iItemIndex
Case 0
sTempItemIndex = sTempLineInput
Case 1, 2
sTempItemIndex = sTempItemIndex & vbTab & sTempLineInput
Case 3
sTempItemIndex = sTempItemIndex & vbTab & sTempLineInput
Me.lstContasDisponiveis.AddItem sTempItemIndex
sTempItemIndex = ""
iItemIndex = 0
End Select

iItemIndex = iItemIndex + 1
End If
Wend
Close #1
End Sub

 

qual pode ser o erro nesse codigo vb ?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto no caso o que eu queria pegar seria isso essa primeira tabela <li class="data_prog">Terça, 29/10</li> até essa <li class="data_prog">Quarta, 30/10</li>

então quero um codigo vc que pegue somente a primeira tabela e quando chegar na quarta 30/10 encerrar ela não mostrar o restante de quarta 30/10 apenas no dia seguinte no caso que mostra. obrigado

obs: pegar só o Title e a hora exemplo 13h45 e mostra-lo em listbox, primeiro hora e depois title na frente

 

<li class="data_prog">Terça, 29/10</li>




<li class="home">
<a href="/programacao/programa/160357-homem-de-ferro" title="Homem de Ferro"><div class='prog_comp_data'>13h45</div><span class='prog_comp_tit'>Homem de Ferro</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/278093-gigantes-de-aco" title="Gigantes de Aço"><div class='prog_comp_data'>16h00</div><span class='prog_comp_tit'>Gigantes de Aço</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/325080-xingu" title="Xingu"><div class='prog_comp_data'>18h15</div><span class='prog_comp_tit'>Xingu</span><br /><span class='metadados'>Filme/Aventura</span></a>
</li>







<li class="home">
<a href="/programacao/programa/103123-quarteto-fantastico" title="Quarteto Fantástico"><div class='prog_comp_data'>20h10</div><span class='prog_comp_tit'>Quarteto Fantástico</span><br /><span class='metadados'>Filme/Aventura</span></a>
</li>







<li class="home">
<a href="/programacao/programa/273529-sem-saida" title="Sem Saída"><div class='prog_comp_data'>22h00</div><span class='prog_comp_tit'>Sem Saída</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/270770-panico-4" title="Pânico 4"><div class='prog_comp_data'>23h55</div><span class='prog_comp_tit'>Pânico 4</span><br /><span class='metadados'>Filme/Suspense</span></a>
</li>





<li class="data_prog">Quarta, 30/10</li>




<li class="home">
<a href="/programacao/programa/286737-danadas-ao-seu-dispor" title="Danadas ao seu Dispor"><div class='prog_comp_data'>01h55</div><span class='prog_comp_tit'>Danadas ao seu Dispor</span><br /><span class='metadados'>Filme/Erótico</span></a>
</li>







<li class="home">
<a href="/programacao/programa/278116-bastardas-inglorias" title="Bastardas Inglórias"><div class='prog_comp_data'>03h20</div><span class='prog_comp_tit'>Bastardas Inglórias</span><br /><span class='metadados'>Filme/Erótico</span></a>
</li>







<li class="home">
<a href="/programacao/programa/334896-soldado-universal-juizo-final" title="Soldado Universal: Juízo Final"><div class='prog_comp_data'>04h55</div><span class='prog_comp_tit'>Soldado Universal: Juízo ...</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/215972-o-mestre-das-armas" title="O Mestre das Armas"><div class='prog_comp_data'>06h55</div><span class='prog_comp_tit'>O Mestre das Armas</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/86560-garganta-do-diabo" title="Garganta do Diabo"><div class='prog_comp_data'>08h55</div><span class='prog_comp_tit'>Garganta do Diabo</span><br /><span class='metadados'>Filme/Suspense</span></a>
</li>







<li class="home">
<a href="/programacao/programa/107991-plano-de-voo" title="Plano de Voo"><div class='prog_comp_data'>11h00</div><span class='prog_comp_tit'>Plano de Voo</span><br /><span class='metadados'>Filme/Suspense</span></a>
</li>







<li class="home">
<a href="/programacao/programa/225224-pandorum" title="Pandorum"><div class='prog_comp_data'>12h50</div><span class='prog_comp_tit'>Pandorum</span><br /><span class='metadados'>Filme/Ficção</span></a>
</li>







<li class="home">
<a href="/programacao/programa/116971-16-quadras" title="16 Quadras"><div class='prog_comp_data'>14h45</div><span class='prog_comp_tit'>16 Quadras</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/306727-vinganca-cega" title="Vingança Cega"><div class='prog_comp_data'>16h35</div><span class='prog_comp_tit'>Vingança Cega</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>







<li class="home">
<a href="/programacao/programa/139590-alpha-dog" title="Alpha Dog"><div class='prog_comp_data'>18h10</div><span class='prog_comp_tit'>Alpha Dog</span><br /><span class='metadados'>Filme/Suspense</span></a>
</li>







<li class="home">
<a href="/programacao/programa/330372-justica-cega-2012" title="Justiça Cega (2012)"><div class='prog_comp_data'>20h15</div><span class='prog_comp_tit'>Justiça Cega (2012)</span><br /><span class='metadados'>Filme/Suspense</span></a>
</li>







<li class="home">
<a href="/programacao/programa/154725-o-gangster" title="O Gângster"><div class='prog_comp_data'>22h00</div><span class='prog_comp_tit'>O Gângster</span><br /><span class='metadados'>Filme/Ação</span></a>
</li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, ai teria como vc me passar algum exemplo sobre isso, dos elemento html que te passei . muito obrigado

no caso com o <li>, pq esse html eu não posso altera-lo está em um link num site esses elementos todo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode alterar nada, mesmo estando dentro do seu código, ele só vai pegar uma cópia do código fonte do site e vai mandar pra você fazer o que quiser, mas o código original fica lá.

 

Você pode usar os exemplos que eu passei acima e selecionar as <li> com class="home", ou title diferentes, tem vários padrões que você pode pegar por esses htms que você me passou, basta jogar todo o código fonte dentro do HTMLElements e depois ir usando os métodos Find() para poder encontrar o que você quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso la no VB.net eu coloquei esses comandos

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

 

For Each webpageelement As HtmlElement In WebBrowser1.Document.All

Dim srcatt As String = webpageelement.GetAttribute("title")
If Not srcatt.Trim = String.Empty Then ListBox1.Items.Add(srcatt)


Next
End Sub
End Class

 

 

Ai fiz como vc disse e tals, só que apresentou um erro nos comandos todos quando eu coloquei os códigos fontes do html que te passei acima no HTMLElements também fiz de outra formas mais ta aparecendo apenas os titles nos listbox que tem na pagina html e não da forma que eu disse acima que quero mostra apenas uma parte dos titles e da horas , esse html serão sempre atualizados por dia só ia altera os titles e horas do html, qual seria o comando que usaria pra selecionar os <li> com class="home" e tals e dos métodos Find() que quero que aparece nos listbox? como já disse o html será o mesmo que te passei logo acima. obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se você quer alterar o código fonte original e mandar de volta para o site então você está indo para o caminho errado, HtmlElements não pode alterar o arquivo de origem, logo você vai ter que usar uma abordagem diferente.

 

Se não é isso então qual é o erro que ele mostra?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro é que não executa, no caso lá eu coloquei esse código

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted

 

For Each webpageelement As HtmlElement In WebBrowser1.Document.All

Dim srcatt As String = webpageelement.GetAttribute("title")
If Not srcatt.Trim = String.Empty Then ListBox1.Items.Add(srcatt)


Next
End Sub
End Class

 

no caso vc diz colocar o código fonte da pagina lá em GetAttribute("title") no lugar de title ? ou está errado dessa forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro é que não é possível iniciar e fica azul embaixo dos código fonte. isso apareceu com esse codigo vb que eu postei acima, será que esse codigo vb acima está certo a forma que estou usando ? qual comando falta nele ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim mais no caso o código é apenas aqueles que te passei mesmo,



ou então se eu usar esse comando aqui

For Each webpageelement As HtmlElement In WebBrowser1.Document.All

Dim srcatt As String = webpageelement.GetAttribute("title")

 

e no lugar de "title" colocar o código fonte do site? ou precisa de mais algo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso ai como eu te falei, eu queria apenas o elemento html prog_comp_tit ou title e o prog_comp_data daquele mesmo html que te passei lá acima, vc teria algum tipo de exemplo disso pq faço mais pega só todos os title.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.