Olá pessoal!
Tenho um desafio novo…
Tenho uma página html onde está o código
<input class="textaligncenter" name="txtTot1" disabled="disabled"
value="12815,7 m3" />
e o valor é carregado de segundos em segundos.
Eu preciso de ler esse valor e carregá-lo numa BD!
Queria saber se há forma de fazer isso…
Obrigada,
Cláudia
sigma
Dezembro 5, 2006, 1:23pm
#2
Se você quer saber quanto tempo demora para carregar, acho que isso ajuda.
try {
URL url = new URL("http://www.guj.com.br");
InputStream is = url.openStream();
DataInputStream dis = new DataInputStream(new BufferedInputStream(is));
String s = "";
while ((s = dis.readLine()) != null) {
System.out.println(s);
}
is.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Não preciso saber esse tempo!
Quero é poder extrair de uma página html, publicada na internet um valor e guarda-lo em BD.
Cláudia
Claudio, recupera o valor via codigo e seta no banco. Por exemplo:
String valor = dynaForm.getString("nomeDoCampo");
dynaForm.set(valor, "nomeDoCampo");
Isso funciona se vc estiver usando DynaValidarionForm.
espero ter ajudado.
Abs
Vocês não estão a perceber…
A página não é minha!! É uma página qq publicada na internet.
Ou seja, qualquer código que eu construa tem que tomar como entrada a página html.
Será que a solução não passa por um parser?
Cláudia
eduveks
Dezembro 5, 2006, 3:36pm
#6
Olá Cláudia…
É assim usa o exemplo que o sigma deu… que com este exemplo vc vai poder carregar todo o HTML para dentro de uma String…
Depois é apanhar no meio desta String o conteúdo que vc quer…
Agora se aquilo actualiza de minuto a minuto… deve ser por java script não? ou html refresh?
Talvez o melhor seja colocar isto numa thread onde vc possa carregar o dito html a cada minuto e tratar a informação obtida…
Pelo que percebi é isto… agora se não for… epa vais ter que tentar explicar melhor
Ok.
Já percebi q o código htmll fica na stream mas agora como “navego” nela para obter, por exemplo, o valor da tag??
Cláudia
Talvez tenha uma forma mais fácil, mas expressões regulares te ajudarão a fazer o que precisa.
Dá uma olhada nas classes do pacote java.util.regex
Aqui alguns exemplos:
http://www.exampledepot.com/egs/java.util.regex/pkg.html
[]´s
Eu ja consegui fazer uns testes bem sucedidos com DOM, mas será q não há uma forma mais simples? Partindo da stream…
Cláudia
eduveks
Dezembro 6, 2006, 12:44pm
#10
Basta colocar todo o Stream dentro de uma String… e depois apanhar na string o que interessa com os comandos básicos…
indexOf
substring
replaceAll
etc…
O DOM pode falhar… já que o HTML pode não estar bem struturado e compátivel com o parse XML… e fora que não deve conseguir apanhar todas as tags… o melhor é String… mais simples e mais rápido