ERRO ESTRANHO COM WEBBROWSER
ola pessoal, estou tentando resgatar informacoes de uma pagina web. o projeto esta funcionando perfeitamente na minha maquina(onde foi desenvolvido o projeto), ao rodar a aplicaçao funciona perfeitamente na minha maquina, porem em outras maquinas nao funciona. nao da erro nenhum, apenas nao retorna informacoes .
segue imagens da aplicacao rodando em minha maquina e em outra maquina.
o texto é retornado sem formato.
vejam:
segue imagens da aplicacao rodando em minha maquina e em outra maquina.
o texto é retornado sem formato.
vejam:
imagem da aplicao rodando em outro computador.
o codigo fonte :
Dim tabelas As HtmlElementCollection = Me.WebBrowser1.Document.GetElementsByTagName([Ô]table[Ô])
Application.DoEvents()
If tabelas.Count <> 0 Then
Application.DoEvents()
For Each elemento As HtmlElement In tabelas
[ô] MessageBox.Show(elemento.InnerText)
elem = elemento.InnerHtml
[ô]Elem = Trim(TextBox1.Text)
Exit For [ô]se existir mas de uma tabela no site, colocar para sair neste ponto.
Application.DoEvents()
Next
Dim frase As String = elem
Application.DoEvents()
[ô]vamos quebrar a string
Dim palavras As String() = frase.Split(New String() _
{[Ô]<TR>[Ô]}, StringSplitOptions.RemoveEmptyEntries)
[ô]exibe o resultado
Dim html As String = [Ô][Ô]
Dim item As String = [Ô][Ô]
Dim cest As String = [Ô][Ô]
Dim segmento As String = [Ô][Ô]
Dim descricao As String = [Ô][Ô]
Application.DoEvents()
For i As Integer = 0 To palavras.GetUpperBound(0) Step 1
Application.DoEvents()
html = palavras(i).PadLeft(50)
Dim palavras_NOVA As String() = html.Split(New String() _
{[Ô]<TD>[Ô]}, StringSplitOptions.RemoveEmptyEntries)
For B As Integer = 1 To palavras_NOVA.GetUpperBound(0) Step 1
Application.DoEvents()
item = Replace(Trim(palavras_NOVA(1)), [Ô]</TD>[Ô], [Ô][Ô])
cest = Replace(Trim(palavras_NOVA(2)), [Ô]</TD>[Ô], [Ô][Ô])
cest = Replace(Trim(cest), [Ô]</td>-->[Ô], [Ô][Ô])
cest = Replace(Trim(cest), [Ô]<!--<td>[Ô], [Ô][Ô])
segmento = Replace(Trim(palavras_NOVA(3)), [Ô]</TD>[Ô], [Ô][Ô])
descricao = Replace(Trim(palavras_NOVA(4)), [Ô]</TD>[Ô], [Ô][Ô])
descricao = Replace(Trim(descricao), [Ô]</TR>[Ô], [Ô][Ô])
descricao = Replace(Trim(descricao), [Ô]</TBODY>[Ô], [Ô][Ô])
Next
Application.DoEvents()
If Len(item) <> 0 Then
dt.Rows.Add(New String() {item, cest, segmento, descricao})
Application.DoEvents()
End If
Application.DoEvents()
Next i
Dim tabelas As HtmlElementCollection = Me.WebBrowser1.Document.GetElementsByTagName([Ô]table[Ô])
Application.DoEvents()
If tabelas.Count <> 0 Then
Application.DoEvents()
For Each elemento As HtmlElement In tabelas
[ô] MessageBox.Show(elemento.InnerText)
elem = elemento.InnerHtml
[ô]Elem = Trim(TextBox1.Text)
Exit For [ô]se existir mas de uma tabela no site, colocar para sair neste ponto.
Application.DoEvents()
Next
Dim frase As String = elem
Application.DoEvents()
[ô]vamos quebrar a string
Dim palavras As String() = frase.Split(New String() _
{[Ô]<TR>[Ô]}, StringSplitOptions.RemoveEmptyEntries)
[ô]exibe o resultado
Dim html As String = [Ô][Ô]
Dim item As String = [Ô][Ô]
Dim cest As String = [Ô][Ô]
Dim segmento As String = [Ô][Ô]
Dim descricao As String = [Ô][Ô]
Application.DoEvents()
For i As Integer = 0 To palavras.GetUpperBound(0) Step 1
Application.DoEvents()
html = palavras(i).PadLeft(50)
Dim palavras_NOVA As String() = html.Split(New String() _
{[Ô]<TD>[Ô]}, StringSplitOptions.RemoveEmptyEntries)
For B As Integer = 1 To palavras_NOVA.GetUpperBound(0) Step 1
Application.DoEvents()
item = Replace(Trim(palavras_NOVA(1)), [Ô]</TD>[Ô], [Ô][Ô])
cest = Replace(Trim(palavras_NOVA(2)), [Ô]</TD>[Ô], [Ô][Ô])
cest = Replace(Trim(cest), [Ô]</td>-->[Ô], [Ô][Ô])
cest = Replace(Trim(cest), [Ô]<!--<td>[Ô], [Ô][Ô])
segmento = Replace(Trim(palavras_NOVA(3)), [Ô]</TD>[Ô], [Ô][Ô])
descricao = Replace(Trim(palavras_NOVA(4)), [Ô]</TD>[Ô], [Ô][Ô])
descricao = Replace(Trim(descricao), [Ô]</TR>[Ô], [Ô][Ô])
descricao = Replace(Trim(descricao), [Ô]</TBODY>[Ô], [Ô][Ô])
Next
Application.DoEvents()
If Len(item) <> 0 Then
dt.Rows.Add(New String() {item, cest, segmento, descricao})
Application.DoEvents()
End If
Application.DoEvents()
Next i
Como diria Jack, o estripador: Vamos por partes.
Você está buscando uma tabela HTML de algum lugar. Está manipulando ela como texto ao invés de usar a classe HtmlTable, o que torna tudo mais difÃcil, mas ok. E daÃ, você traz os dados da tabela e quer fazer o que com eles?
Você está buscando uma tabela HTML de algum lugar. Está manipulando ela como texto ao invés de usar a classe HtmlTable, o que torna tudo mais difÃcil, mas ok. E daÃ, você traz os dados da tabela e quer fazer o que com eles?
ok, KERPLUNK... pego os dados da tabela trato as informacoes e jogo no datagridview, como exemplo abaixo...
o problema e que na minha maquina funciona beleza porem em outro pc nao funciona...
o que pode ser?... obrigado desde ja.
o problema e que na minha maquina funciona beleza porem em outro pc nao funciona...
o que pode ser?... obrigado desde ja.
Então é mais um motivo para usar o objeto HtmlTable ao invés de tratar o texto e um WebClient(HttpClient) ao invés de um webbrowser.
ok... vou tentar por webclient... nao tenho nem noção de como usar webclient.. se tiver alguma referencia como exemplo para estudo e implementacao.
estava usando isso para informar o ncm direto no webbrowser...:
WebBrowser1.Document.GetElementById([Ô]ncmsh[Ô]).SetAttribute([Ô]value[Ô], codncm)
WebBrowser1.Document.GetElementById([Ô]ncmsh[Ô]).Focus() [ô] Porque o butão nao tem ID por isso [Ô]FóCO[Ô] nele
SendKeys.Send([Ô]{Enter}[Ô]) [ô] E [Ô]Clicko Enter[Ô]
como seria com webclient?
alguma dica?
por favor!
obrigado!
estava usando isso para informar o ncm direto no webbrowser...:
WebBrowser1.Document.GetElementById([Ô]ncmsh[Ô]).SetAttribute([Ô]value[Ô], codncm)
WebBrowser1.Document.GetElementById([Ô]ncmsh[Ô]).Focus() [ô] Porque o butão nao tem ID por isso [Ô]FóCO[Ô] nele
SendKeys.Send([Ô]{Enter}[Ô]) [ô] E [Ô]Clicko Enter[Ô]
como seria com webclient?
alguma dica?
por favor!
obrigado!
é basicamente a mesma coisa, você passa um endereço e [Ô]baixa[Ô] o conteúdo. Em anexo um exemplo, usando um HttpClient. WebClient é só força de hábito, este objeto até existe mas está obsoleto, também faço uso de objetos Html mesmo, transformo tudo em classe e passo para um datagridview. Aliás, é um brinquedinho bacana, sugiro à todos que baixem para dar uma olhadinha. Fiz rapidão e provavelmente tem erros, mas já se pode ter uma idéia.
obrigado!... Kerplunk... vou estudar seu codigo e adaptar em vb.net... valeu pela dica.
Tópico encerrado , respostas não são mais permitidas