VB.NET PEGANDO DADOS DA WEB | VISUAL STUDIO EXPRES

MANEL26 04/09/2014 07:57:39
#440929
Bom dia galera.

A questão é o seguinte:

Estou tentando criar um pequeno aplicativo que vá ao site do Yahoo Finance e mostre num textbox o câmbio de algumas moedas, mas para isso tenho que conseguir conectar o aplicativo á web e depois procurar esses dados no código fonte e em seguida apresenta-los num textbox, certo?

O problema começa aqui, não consigo fazer isso.

Já andei pesquisando na internet sobre como fazer o programinha se ligar á web só que nada funciona.

Já li os dois artigos a baixo mas não dá, creio que é porque o artigo se refere ao Visual Basic 2010 Express Edition e eu estou usando o Visual Studio Express 2013, será?

=========================================
VB .NET - Obtendo informações de uma web page
http://www.macoratti.net/12/01/vbn_webr1.htm
========================================
==================================================
Trocando dados entre sua aplicação Visual Basic e a Internet
http://www.macoratti.net/vb_webbd.htm
=================================================

Sempre que eu insiro os comandos “Imports System.Net”, “Imports System.Text.RegularExpressions”, “Imports System.IO” e “Imports System.Data” no Visual Studio ele dá erro e me manda apagar os “Imports”, depois quando digito:
Dim oWebRequest As WebRequest
Dim oWebResponse As WebResponse = Nothing
Dim strBuffer As String = [Ô][Ô]
Dim objSR As StreamReader = Nothing


Ele dá erro novamente e me sugere que substitua por:
Dim oWebRequest As Net.WebRequest
Dim oWebResponse As Net.WebResponse = Nothing
Dim strBuffer As String = [Ô][Ô]
Dim objSR As IO.StreamReader = Nothing

E por fim, quando insiro:
oWebResponse = oWebRequest.GetResponse()

Ele me diz que:
“Error 16 [ô]GetResponse[ô] is not a member of [ô]System.Net.WebResponse[ô].”

Alguém me pode ajudar???

Abraço a todos.
PEGUDO 04/09/2014 11:56:57
#440936
Resposta escolhida
Cara,
Trabalhar WindowsForm com internet é uma m@#$%.
Primeiro que vai depender muito da velocidade da internet porque, trabalhando com WebBrowser ou WebRequest, às vezes o conteúdo retorna vazio ou não foi carregado ou carregou até metade da página, enfim...

Eu fiz este exemplo aí pra você. Poderia ter usado WebBrowser, mas decidi utilizar o WebRequest.
Ele faz um request a cada dez segundos na página de finanças do Yahoo Brasil.
Percebi que quando ele começava a dar erro, não parava mais. Mesmo depois dele esperar os dez segundos e tentar de novo.
Aí tem que fechar o programa e abrí-lo novamente.

Mas pode ser da minha internet aqui. Não sei.
Mas o objetivo foi alcançado. Se você estudar o código vai começar a entender como se pega dados da internet.

Valeu.
MANEL26 04/09/2014 13:54:38
#440939
Boa tarde PEGUDO.

Antes de mais muito obrigado pela sua resposta, era mesmo algo deste género que eu pretendia.

De facto, quando o programa começa dando erro não para mais, mas está funcionando e isso é que importa.

Na sua resposta você disse que:

“Cara,
Trabalhar WindowsForm com internet é uma m@#$%.
Primeiro que vai depender muito da velocidade da internet porque, trabalhando com WebBrowser ou WebRequest, às vezes o conteúdo retorna vazio ou não foi carregado ou carregou até metade da página, enfim...”

Mas… existe uma outra forma (mais eficiente) de fazer algo deste género sem ser com WindowsForm?

Peço desculpa pela dúvida mas eu sou novato…

Cara, analisei o seu código e achei bem interessante, mas fiquei com bastantes dúvidas na parte da classe “classes.vb” que você criou para iniciar o comando yahoo.navegar().

Eu sei o que são classes, para que servem e já criei algumas (bem simples claro), mas esta fiquei com muitas dúvidas mesmo.

Existe algum artigo, aqui no VBmania ou em outro site, que me possam recomendar para estudar melhor este tipo de código?

[ô][ô][ô] <summary>
[ô][ô][ô] Preço da primeira cotação
[ô][ô][ô] </summary>
[ô][ô][ô] <value>Preço</value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Shared Property preco1 As String
Get
Return iPreco1
End Get
Set(value As String)
iPreco1 = value
End Set
End Property

é que nesta parte fiquei mesmo sem perceber nada…

Muito Obrigado a todos galera.
PEGUDO 04/09/2014 15:35:59
#440945
Esta parte:
[txt-color=#007100][ô][ô] <summary>
[ô][ô][ô] Preço da primeira cotação
[ô][ô][ô] </summary>
[ô][ô][ô] <value>Preço</value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>[/txt-color]
São só comentários sobre o que a propriedade faz. Você pode digitar o que quiser nos campos para documentar seu código.
A classe [Ô]preco1[Ô] trabalha com a primeira cotação exibida no site da Yahoo (no caso a cotação USD/BRL).

o código
Get
Return iPreco1
End Get

pega o valor que foi atribuído à variável [Ô]iPreco1[Ô] (logo abaixo de [Ô]Public Class yahoo[Ô]

e o código
Set(value As String)
iPreco1 = value
End Set

Atribui um valor à variável [Ô]iPreco1[Ô].
Trabalhando deste jeito, você pode proteger sua classe para que dados errados não sejam enviados e/ou dados sigilosos não possam ser acessados.

Coma também aconteceu o erro com você, então o problema está no site do Yahoo. Talvez ele controle, via IP, quantas vezes uma chamada foi feita ao site, via request.

Forma mais eficiente de se trabalhar com internet é muito relativo, como escrevi antes, existem várias atenuantes (como lentidão de internet, etc...) mas se puder trabalhar com ASP.NET é uma boa. Você pode fazer requests da mesma maneira que eu coloquei no exemplo que te passei, ou seja, você visita a página do Yahoo sem navegar até ela.

Cara, eu aprendi na marra, lendo e relendo, trabalhando, perguntando aqui (não tenho curso superior nem técnico em informática) e fui descobrindo e me especializando ao máximo.
Claro depende de você guardar um tempinho do teu dia (30 ou 20 minutos por dia) lendo artigos, livros e/ou fóruns como este aqui e tentando ajudar a quem pergunta, porque quando você tenta ajudar alguém, você passa a exercitar o seu conhecimento e o fixa na cabeça.

Sugestão de leitura rápida: [txt-color=#080808]Programação orientada a objetos[/txt-color]
Este link tem vário posts, entitulados: Programação Orientada a Objetos em 10 lições práticas.
Já está na parte 07. Comece a ler devagarinho e fazendo os exemplos.

valeu.
MANEL26 08/09/2014 08:47:33
#441054
Muito obrigado PEGUDO.

Irei fazer isso sim…

E parabéns, pelo aprendizado autodidata.
Tópico encerrado , respostas não são mais permitidas