Galera, boa tarde.
Estou criando um sistema de reagentes químicos, consigo fazer uma integração em java, no qual digito o nome e aparecerá as informações do reagente
site: http://sistemasinter.cetesb.sp.gov.br/produtos/produto_consulta_completa.asp?qualpagina=7&sqlQuery=sp_TBPRODIDENTIFICACAO_sel
E ai João.
Ta confusa sua pergunta cara.
Você está fazendo quer buscar as informações desse site a partir de um nome?
Chegou a pesquisou algum webservice?
Exatamente edu, digitando nome, trazer as informações.
Cara,
Você pode fazer requisições passando o nome
No exemplo abaixo ele retorna todos os dados da ACETONITRILA.
http://sistemasinter.cetesb.sp.gov.br/produtos/ficha_completa1.asp?consulta=ACETONITRILA&cod=
Olhando por cima não achei um webservice que retorne o Json pra poder tratar.
Mas você pode interpretar o Html de retorno e pegar as informações que necessita.
Pra ler essa URL
Url url = new URL("http://sistemasinter.cetesb.sp.gov.br/produtos/ficha_completa1.asp?consulta=ACETONITRILA&cod=");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
// Lê linha por linha do retorno do HTML
while ((inputLine = in.readLine()) != null) {
//interpreta as linhas
}
Ai pra cada vez que você clicaria na busca você pode alterar a variável de consulta usando replace
String url = http://sistemasinter.cetesb.sp.gov.br/produtos/ficha_completa1.asp?consulta=#variavelBusca&cod=;
url = url.replaceAll("#variavelBusca", novaVariavelBusca);
Deu certo aqui, agora preciso pesquisar como busco a linha, exemplo a fórmula molecular
Pelo que olhei, é tudo tabela html o site.
Você poderia usar o https://jsoup.org/ para facilitar o parse.
Exemplo:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class Principal {
private static final String URL_STR = "http://sistemasinter.cetesb.sp.gov.br/produtos/ficha_completa1.asp?consulta=ACETONITRILA";
public static void main(String[] args) {
HttpURLConnection con = null;
try {
URL url = new URL(URL_STR);
con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.connect();
switch (con.getResponseCode()) {
case 200:
System.out.println("Encontrou algo");
System.out.println(getHtml(url));
//inicializar objeto para parse com a string do html usando o Jsoup
Document doc = Jsoup.parse(getHtml(url));
//selecionar todas as tabelas do html
Elements tabelas = doc.select("table");
break;
case 500:
System.out.println("Não Encontrou");
break;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (con != null)
con.disconnect();
}
}
public static String getHtml(URL url) {
if (url == null)
throw new RuntimeException("URL é null");
String html = null;
StringBuilder sB = new StringBuilder();
try (BufferedReader bR = new BufferedReader(new InputStreamReader(url.openStream()))) {
while ((html = bR.readLine()) != null)
sB.append(html);
} catch (Exception e) {
e.printStackTrace();
}
return sB.toString();
}
}
@joaoimporta tente trabalhar com o código fonte da pagina.
Por exemplo.
view-source:http://sistemasinter.cetesb.sp.gov.br/produtos/ficha_completa1.asp?consulta=SULFATO%20DE%20PRATA
Se encontrar o texto “Fórmula molecular” você pega a próxima linha e trabalha nela usando indexOf para pegar a partir de posições específicas.