Estou usando a seguinte instrução para recuperar o HTML de um site:
try {
URL url = new URL("http://www.google.com.br");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
}
in.close();
} catch (IOException e) {
}
A variável str vai conter uma string com o código HTML do site, no caso o google.com.br.
Agora eu preciso editar essa string pegando partes específicas desse código HTML e transformar em variáveis para o meu sistema.
Por exemplo, supondo que o site tenha a seguinte tabela:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Página de exemplo</title>
<meta http-equiv="Content-Type" content="text/html;" />
</head>
<body bgcolor="#ffffff" style="font-family: Arial">
<div align="center">
<table>
<tr>
<td colspan="2">
<table width="100%" border="0" align="center" cellpadding="50">
<tr>
<td align="left">
<table width="100%" border="1" bgcolor="#E8E8E8" bordercolor="#EBEBEB">
<tr align="center" bgcolor="#E8E8E8">
<td>
<font size="2"><b>Serviço</b></font></td>
<td>
<font size="2"><b>Descrição</b></font></td>
<td>
<font size="2"><b>Mês/Ref.</b></font></td>
</tr>
<tr align="center" bgcolor="#FFFFFF">
<td>
<font size="2">
01.01.01
</font>
</td>
<td>
<font size="2">
RETIRANDO A VEGETACAO, TRONCOS ATE 5CM DE DIAMETRO E RASPAGEM
</font>
</td>
<td>
<font size="2">
12/2008
</font>
</td>
</tr>
</table>
<table border="1" bgcolor="#E8E8E8" bordercolor="fbfbfb" style="width: 100%">
<tr align="middle" bgcolor="#E8E8E8">
<td>
<font size="2"><b>Código</b></font></td>
<td>
<font size="2"><b>Descrição</b></font></td>
<td>
<font size="2"><b>Unidade</b></font></td>
<td>
<font size="2"><b>Coeficiente</b></font></td>
<td>
<font size="2"><b>Preço</b></font></td>
<td>
<font size="2"><b>Sub Total</b></font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="middle">
<font size="2">
10.146
</font>
</td>
<td>
<font size="2">
SERVENTE
</font>
</td>
<td align="middle">
<font size="2">
H
</font>
</td>
<td align="right">
<font size="2">
0,25000
</font>
</td>
<td align="right">
<font size="2">
3,28
</font>
</td>
<td align="right">
<font size="2">
0,82000
</font>
</td>
</tr>
</table>
<br />
<table cellspacing="1" cellpadding="1" width="100%" border="1" bgcolor="#FFFFF0"
bordercolor="fbfbfb">
<tr>
<td bgcolor="#E8E8E8">
<font size="2"><b>Mão Obra:</b></font></td>
<td bgcolor="#FFFFFF">
<font size="2">
0,82000
</font>
</td>
<td bgcolor="#E8E8E8">
<font size="2"><b>*LS:</b></font></td>
<td bgcolor="#FFFFFF">
<font size="2">
1,00040
</font>
</td>
<td bgcolor="#E8E8E8">
<font size="2"><b>SubMO:</b></font></td>
<td bgcolor="#FFFFFF">
<font size="2">
1,82040
</font>
</td>
</tr>
<tr>
<td bgcolor="#E8E8E8">
<font size="2"><b>Materiais:</b></font></td>
<td bgcolor="#FFFFFF">
<font size="2">
0,00000
</font>
</td>
<td bgcolor="#E8E8E8">
<font size="2"><b>*BDI:</b></font></td>
<td bgcolor="#FFFFFF">
<font size="2">
0,41869
</font>
</td>
<td bgcolor="#E8E8E8">
<font size="2"><b>TOTAL:</b></font></td>
<td bgcolor="#FFFFFF">
<font size="2">
2,23000
</font>
</td>
</tr>
</table>
<font size="2">
<br />
*LS - Leis Sociais<br>
*BDI - Benefícios e Despesas Indiretas</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
Supondo que minha variável str tenha assumido esse código como seu conteúdo e eu precisasse, por exemplo, recuperar o valor "01.01.01", que está no código acima, como eu faria?
E se eu não conhecesse o valor "01.01.01" nem o seu tamanho (por exemplo se eu precisasse recuperar o valor da "Descrição" sendo essa descrição de tamanho variável e conteúdo desconhecido, representado nesse exemplo pela string "RETIRANDO A VEGETACAO, TRONCOS ATE 5CM DE DIAMETRO E RASPAGEM", como eu deveria proceder?
E, por último, vocês tem alguma dica sobre esse código para ler o HTML de um site?
Até mais!

