OBTER TEMPERATURA NA WEB

GILBERTOJW 18/04/2013 14:38:56
#422136
Pessoal me parece que existe uma forma de capturar da internet, determinadas informações como temperatura, tempo, etc...
Eu até pesquisei umas coisas e me deparei com [Ô]web services[Ô], e até tentei aplicar as informações em um programinha meu, mas sem resultados. Talvez eu não tenha entendido como usar.
Mas também possa ser que não seja o que eu estou procurando.
Existe alguma forma de eu capturar esses dados ? Alguém pode me dar uma luz ?


Agradeço;
GANDA.NICK 18/04/2013 16:04:16
#422143
Resposta escolhida
Olá, se os dados estiverem no fonte pagina, sim é possivel.

Fonte do site Yahoo:

>Brasília</a></h4><p class=[Ô]temp-f hide[Ô]><span class=[Ô]now[Ô]>81°F </span><span class=[Ô]high[Ô]>Alta 80° </span><span class=[Ô]low[Ô]>Baixa64°</span></p><p class=[Ô]temp-c[Ô]><span class=[Ô]now[Ô]>27°C </span><span class=[Ô]high[Ô]>Alta 27° </span><span class=[Ô]low[Ô]>Baixa18°</span></p></div></li><li><div class=[Ô]icon[Ô] style=[Ô]background-position: -6710px -4px;[Ô]>Parcialmente nublado</div>


Veja só, em Brasília estão 27 graus celsios e 81 graus fahrenheit, é na class [Ô]now[Ô], mostra ainda a temperatura máxima e a mínima, e ainda diz que está [Ô]Parcialmente nublado[Ô], é pouco provável a queda de aguaceiros, mas em todo o caso é melhor andar com o guarda chuva atrás...


O que vc tem que fazer é filtrar o que lhe interessa...

pode fazer o download do fonte atraves da api URLDownloadToFile sem ter que usar o componente WebBrowser... como o WebBrowser também dá, mas demora mais tempo porque tem de carregar a pagina... usaria-se assim:

TmpString = WebBrowser1.Document.body.innerHTML



Procure também por HTML DOM, talvez veja este o caminho correcto a tomar.

Espero ter ajudado.


GILBERTOJW 18/04/2013 17:51:41
#422152
Obrigado GANDA_NICK.
Próprio GANDA ou mais alguém sabe me dizer algo mais sobre HTML DOM ?
Um programinha simples só para que eu entenda o que tenho de digitar e onde ?
Agradeço;
ROBSON 19/04/2013 09:47:04
#422171

Ideia muito interessante de colocar estas informações dentro de qualquer aplicativo.
O cliente que usa o seu programa ficaria informado sobre as condições do tempo da sua cidade.
Isto cria uma dependencia maior para o seu soft
GILBERTOJW 19/04/2013 13:56:50
#422189
Isso mesmo Robson. Mas não tenho idéia de como começar cara. Se você souber como usar essas sugestões do Ganda, me ajude por favor.
GANDA.NICK 19/04/2013 17:49:28
#422201
Olá,

Veja este code:

Option Explicit

Private Declare Function GetTickCount Lib [Ô]kernel32[Ô] () As Long

Private Sub Command1_Click()
Dim lStart As Long
lStart = GetTickCount

Dim obj As MSXML2.ServerXMLHTTP
Set obj = New MSXML2.ServerXMLHTTP

obj.open [Ô]GET[Ô], [Ô]http://br.tempo.yahoo.com/[Ô]
obj.send

[ô]se ocorreu um erro HTTP
If obj.Status >= 400 And obj.Status <= 505 Then
MsgBox [Ô]Erro Ocorrido : [Ô] & obj.Status & [Ô] - [Ô] & obj.statusText
Else
Dim objDocument As MSHTML.HTMLDocument
Set objDocument = New MSHTML.HTMLDocument

objDocument.body.innerHTML = obj.responseText
Call Filtrar(objDocument.body.innerText)
Set objDocument = Nothing
End If
Set obj = Nothing

Label1.Caption = GetTickCount - lStart
End Sub

Private Sub Command2_Click()
Dim lStart As Long
lStart = GetTickCount

Dim objHTML1 As New MSHTML.HTMLDocument
Dim objHTML2 As MSHTML.HTMLDocument
Set objHTML2 = objHTML1.createDocumentFromUrl([Ô]http://br.tempo.yahoo.com/[Ô], [Ô]null[Ô])
Do Until objHTML2.readyState = [Ô]complete[Ô]
DoEvents
Loop
Call Filtrar(objHTML2.body.innerText)

Label1.Caption = GetTickCount - lStart
End Sub

Private Sub Filtrar(ByVal sHTML As String)
Dim i As Integer
Dim arrHTML() As String

arrHTML = Split(sHTML, vbCrLf)

For i = 0 To UBound(arrHTML)
If InStr(1, arrHTML(i), [Ô]Procurar Reports Tempo[Ô]) <> 0 Then
[ô]Faça seu filto aqui

Exit For
End If
Next [ô]i

For i = 0 To UBound(arrHTML)
Debug.Print arrHTML(i)
Next [ô]i

End Sub



o exemplo do botao1 é mais rápido, tem que referenciar: [Ô]microsoft html object library[Ô] e [Ô]microsoft xml, v6.0[Ô]

no exemplo do botao2 só tem que referenciar [Ô]microsoft html object library[Ô].


Não sei se será esta a maneira mais simples de fazer que pretende... se gostar é só fazer o filtro (manipulação de strings), se precisar de ajuda para o filtro diga e mostre o que já fez!!
GILBERTOJW 19/04/2013 18:19:10
#422203
Valeu Ganda mas me apontam alguns erros em tempo de projeto.
A biblioteca [Ô]microsoft html object library[Ô] eu achei como [Ô]microsoft scriptlet component[Ô] , mas microsoft xml, v6.0 não achei.
Meu vb é 2008.
Alguém sabe onde acho isso para escolher ?




GANDA.NICK 19/04/2013 18:47:54
#422208
vc postou sua duvida no forum de [txt-color=#e80000]VB6[/txt-color]

esse code é de vb6


em vb.net não sei, edite o tópico e mude a Compatibilidade para [txt-color=#e80000]VB.NET[/txt-color], ou encerre este e crie um novo para vb.net
GILBERTOJW 19/04/2013 20:10:47
#422214
Obrigado Ganda
Tópico encerrado , respostas não são mais permitidas