Estou buscando obter a tabela que se encontra no endereço http://www.fundamentus.com.br/resultado.php e consegui fazer isso com a ajuda do nosso colega de fórum JM4X na thread Obter dados de URL .PHP com proxy [RESOLVIDO].
Porém agora preciso transportar a tabela apresentada para um jtable ou algo similar para fazer uns cálculos e classificações(ordenações). Li um bocado e achei que a solução fosse parser HTML e tentei com o JSoup. Mas estou tendo o mesmo problema de Proxy descrito na outra thread, acredito que o JSoup só aceite url não por meio de proxy.
Alguém saberia outro jeito de conseguir utilizar o proxy e o parser juntos? Ou parsear um BufferedReader com JSoup?
A estrutura da tabela em html não é tão simples…é outra dificuldade que enfrento.
Agradeço antecipadamente a ajuda.
Resolvi de uma maneira “braçal”, mas foi o que consegui fazer com o pouco tempo que tenho, espero que dê idéias melhores para outros colegas de fórum. Segue resolução.
int x = 0;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(“proxydaempresa”, porta));
URL url = new URL(“http://www.fundamentus.com.br/resultado.php”);
URLConnection conn = url.openConnection(proxy);
BufferedReader input = new BufferedReader(new InputStreamReader(conn.getInputStream(), “ISO-8859-1”));
String s = null;
while (null != (s = input.readLine())) {
if (s.contains("<thead>")) { //flag ativado ao alcançar cabeçalho da tabela
x = 1;
}
if (s.contains("</table>")) { // flag desativado ao alcançar fim da tabela
x = 0;
}
if (x == 1) { //por toda a tabela faça
try {
s = s.substring((s.lastIndexOf(">", s.indexOf("</"))) + 1, s.indexOf("</")); //achar dados entre [b]></[/b]
s = s.trim(); // limpar lixo
} catch (Exception e) {
};
if ((s.contains("<")) || (s.isEmpty())) { //limpar lixo
} else {
System.out.println(s); //retornar dados da tabela
};
}
}
}