Fórum [RESOLVIDO] Pegar dados de site #567731

10/04/2013

0

Olá gostaria de saber como faço para fazer pesquisar ou pegar dados de site atraves do java, por exemplo, usuario pedir a previsao do tempo de tal cidade e de alguma forma o programa pegar os dados de algum site e mostrar para o usuario(apenas a previsao do tempo da cidade) ou fazer pesquisas na internet tipo wikipedia usuario digitar o que deseja e o programa imprimir o resultado a pesquisa(o texto).
Pettrus Aquino

Pettrus Aquino

Responder

Posts

10/04/2013

Fabio Rocha

[quote="Pettrus Sherlock"]Olá gostaria de saber como faço para fazer pesquisar ou pegar dados de site atraves do java, por exemplo, usuario pedir a previsao do tempo de tal cidade e de alguma forma o programa pegar os dados de algum site e mostrar para o usuario(apenas a previsao do tempo da cidade) ou fazer pesquisas na internet tipo wikipedia usuario digitar o que deseja e o programa imprimir o resultado a pesquisa(o texto).
Para buscar e captura de informações você pode construir um web spider, existe um em Java, com código aberto que pode ser util na sua aprendizagem: [url]http://code.google.com/p/jspider/[/url]
Responder

Gostei + 0

10/04/2013

Marcelo Senaga

Outra alternativa é o JSoup. Muito bom, você consegue detectar qualquer elemento da página: div, label, font, texto, etc e extrair esses dados. Ex:
        Elements img = doc.select("div[style=margin-left:130px;]");        
        for(Element el: img) {
            System.out.println("Visualizações = " + el.text());         
        }
Obtem todos os div´s do padrão citado. Veja mais exemplos: http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/
Responder

Gostei + 0

10/04/2013

Pettrus Aquino

[quote="gomesrocha"][quote="Pettrus Sherlock"]Olá gostaria de saber como faço para fazer pesquisar ou pegar dados de site atraves do java, por exemplo, usuario pedir a previsao do tempo de tal cidade e de alguma forma o programa pegar os dados de algum site e mostrar para o usuario(apenas a previsao do tempo da cidade) ou fazer pesquisas na internet tipo wikipedia usuario digitar o que deseja e o programa imprimir o resultado a pesquisa(o texto).
Para buscar e captura de informações você pode construir um web spider, existe um em Java, com código aberto que pode ser util na sua aprendizagem: [url]http://code.google.com/p/jspider/[/url]
Neste seu link ainda não tem nada.
Responder

Gostei + 0

10/04/2013

Pettrus Aquino

[quote="ms27817"]Outra alternativa é o JSoup. Muito bom, você consegue detectar qualquer elemento da página: div, label, font, texto, etc e extrair esses dados. Ex:
        Elements img = doc.select("div[style=margin-left:130px;]");        
        for(Element el: img) {
            System.out.println("Visualizações = " + el.text());         
        }
Obtem todos os div´s do padrão citado. Veja mais exemplos: http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/
Muito bom esse link que você me passou marcelo, obrigado!
Responder

Gostei + 0

11/04/2013

Pettrus Aquino

Estranho estou tentando implementar o exemplo do link http://www.mkyong.com/java/jsoup-html-parser-hello-world-examples/ e me é retornado esse erro
java.net.SocketException: Unexpected end of file from server
        at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:769)
        at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
        at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:766)
        at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:632)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1072)
        at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)
        at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:429)
        at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
        at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
        at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
        at agregadornoticias.teste.HTMLParserExample1.main(HTMLParserExample1.java:23)

Responder

Gostei + 0

11/04/2013

Pettrus Aquino

Tem o Jericho tambem: http://jericho.htmlparser.net/docs/index.html
Responder

Gostei + 0

11/04/2013

Pettrus Aquino

Faz a mesma coisa? Sabe dizer se tem um melhor do que o outro. E pq vi aqui e achei interessante. Estou tentando realizar o teste do meu trabalho, pode ser que algum firewall esteja me barrando. Valeu.
Responder

Gostei + 0

11/04/2013

Pettrus Aquino

Sim. Faz a mesma coisa!
Responder

Gostei + 0

11/04/2013

Krisnamourt Filho

Acho achei minha resposta. Adicionei o "s" https e veio a seguinte resposta

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:808)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1120)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1147)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1131)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
        at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:425)
        at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:410)
        at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:164)
        at org.jsoup.helper.HttpConnection.get(HttpConnection.java:153)
        at agregadornoticias.teste.HTMLParserExample1.main(HTMLParserExample1.java:23)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
        at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:333)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
        ... 11 more


Sabe como faço pra ter acesso a sites em ambiente protegidos por firewall na rede como aqui no meu trabalho.
Responder

Gostei + 0

11/04/2013

Pettrus Aquino

Achei esse link aqui! http://stackoverflow.com/questions/7744075/how-to-connect-via-https-using-jsoup
Responder

Gostei + 0

11/04/2013

Krisnamourt Filho

Estranho. Ter q baixar o certificado de cada site.
Responder

Gostei + 0

11/04/2013

Krisnamourt Filho

Consegui
System.setProperty("https.proxyHost", "servidor");
            System.setProperty("https.proxyPort", "9999");
Responder

Gostei + 0

11/04/2013

Pettrus Aquino

[quote="krismorte"]Consegui
System.setProperty("https.proxyHost", "servidor");
            System.setProperty("https.proxyPort", "9999");
Nossa, mas seu proxy não pede username/password?
Responder

Gostei + 0

11/04/2013

Krisnamourt Filho

Na verdade se sua maquina esta em uma rede privada as maquinas ja estão atentivadas elas tem apenas q passar pelo proxy pra chegar a internet.
Responder

Gostei + 0

11/04/2013

Pettrus Aquino

[quote="krismorte"]Na verdade se sua maquina esta em uma rede privada as maquinas ja estão atentivadas elas tem apenas q passar pelo proxy pra chegar a internet.
nossa, obrigado pela informação!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar