Destrinchar o código html com Java.  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
tasio
Smalltalk

Membro desde: 08/01/2008 11:05:25
Mensagens: 4
Localização: Brasília
Offline

Garela, estou com uma dúvida e se alguém puder me ajudar ficarei grato.
Estou fazendo uma aplicação e uma da funçoes dela é capturar código Html. A captura do código eu ja estou fazendo, só que vem o código completo, mas minha dificuldade está em capturar somente um pedaço do código e não o código todo.


[Email] [MSN]
Jair Rillo Junior
Moderador
[Avatar]

Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline

Você pode trabalhar com os métodos da classe String para ir capturando apenas o que você quer (olha o indexOf, substring, charAt)
Ou então fazer a pesquisa/captura através de expressões regulares.

Jair Rillo Junior

http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate
vanzella
JavaEvangelist
[Avatar]

Membro desde: 05/01/2007 18:45:15
Mensagens: 381
Localização: Cuiaba - MT
Offline

Da um olhada em Regex também.

Sun Certified Java Programmer 5.0
"Se você não esta confuso, não esta prestando atenção!"
Pedrosa
JWizard
[Avatar]

Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline

Veja se isso te ajuda:

guidam
Smalltalk

Membro desde: 06/03/2008 08:38:00
Mensagens: 4
Offline

tasio, como você obteve o código HTML?

Obrigado.
tasio
Smalltalk

Membro desde: 08/01/2008 11:05:25
Mensagens: 4
Localização: Brasília
Offline

Fala Guidam,
cara eu usei a classe
URL e URLConnection(que passo como parametro a pagina que eu quero que ela capture) do java.net.URL;
a ImputStreamReader(pra ler oque a URL trouxe) da java.io e
BufferedReader(para ler linha a linha pra eu poder trabalhar com o código) tbm do java.io...


Se precisar de alguma coisa estamos aí...!

This message was edited 1 time. Last update was at 06/03/2008 09:08:23

[Email] [MSN]
guidam
Smalltalk

Membro desde: 06/03/2008 08:38:00
Mensagens: 4
Offline

Obrigado tasio,

Veja se pode me ajudar.
Peguei esse codigo aqui no GUJ, mas não sei que formato que passo como parametro.
Estou passando a seguinte uriStr: http://localhost:8080/aplicacao/jsp/teste/index.jsp , mas o retorno é vazio.

public static String getText(String uriStr) {
final StringBuffer buf = new StringBuffer(1000);
try {
HTMLDocument doc = new HTMLDocument() {
public HTMLEditorKit.ParserCallback getReader(int pos) {
return new HTMLEditorKit.ParserCallback() {
public void handleText(char[] data, int pos) {
buf.append(data);
buf.append('\n');
}
};
}
};
URL url = new URI(uriStr).toURL();
URLConnection conn = url.openConnection();
Reader rd = new InputStreamReader(conn.getInputStream());
EditorKit kit = new HTMLEditorKit();
kit.read(rd, doc, 0);
} catch (MalformedURLException e) {
} catch (URISyntaxException e) {
} catch (BadLocationException e) {
} catch (IOException e) {
}
// Retorna todo o texto encontrado
return buf.toString();
}
tasio
Smalltalk

Membro desde: 08/01/2008 11:05:25
Mensagens: 4
Localização: Brasília
Offline

Guidan, vê se isso te ajuda...

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;



public class TextHTML {

static String in;

public String capturaHTML(String url) {

try {
//pega a url informada
URL u = new URL(url);
//conecta com o servidor da pagina
URLConnection uc = u.openConnection();
//retorna a leitura da pagina
InputStreamReader isr = new InputStreamReader(uc.getInputStream());
BufferedReader br = new BufferedReader(isr);

String inputLine;
//lê todas as linhas da pagina e armazena tudo na variavel in
while ((inputLine = br.readLine()) != null) {
in += (inputLine + "\n");
}
System.out.println(in);
br.close();
isr.close();

} catch (IOException e) {
e.printStackTrace();
}

return url;

}

public static void main(String [] args){

TextHTML th = new TextHTML();
th.capturaHTML("http://nome da pagina");

}

}
[Email] [MSN]
fnascimento
JavaBaby

Membro desde: 08/01/2008 08:56:28
Mensagens: 85
Localização: São José dos Campos - SP
Offline

Vc esta querendo pegar o codigo html ou as informações nele contida?
Eu comecei fazer algo parecido mas era para coletar informações que estão no meu html, tipo fazer um catalago.

Isso que está precisando?

Fábio Nascimento
guidam
Smalltalk

Membro desde: 06/03/2008 08:38:00
Mensagens: 4
Offline

Tasio, funcionou obrigado!

Fnascimento, estou querendo pegar o codigo HTML, o código do tasio funcionou pra isso.
tasio
Smalltalk

Membro desde: 08/01/2008 11:05:25
Mensagens: 4
Localização: Brasília
Offline

Blz cara, qualquer coisa estamos aí. E aproveito tbm pra agradecer as dicas da galera aí que responderam minha dúvida... valeu...
[Email] [MSN]
Daniel Quirino Oliveira
Moderador
[Avatar]

Membro desde: 23/03/2003 23:57:34
Mensagens: 3299
Localização: Awawawawa (Araraquara) - SP
Offline

Galera, acostumem-se a buscar por alguma solução já pronta ao invés de reinventar a roda. Uma busca rápida por Java+HTML+Parser no Google retornou a seguinte URL: http://htmlparser.sourceforge.net/.

Daniel Quirino Oliveira
[Email] [WWW]
v_vinicius_v
Debugger

Membro desde: 01/02/2007 06:33:17
Mensagens: 73
Offline

Talvez o que ele queira seja algo um pouco mais simples.
Eu faço da seguinte forma.
por exemplo se eu quisesse capturar o título da pagina retornada :



nogueiramaier
Smalltalk

Membro desde: 22/05/2009 10:11:49
Mensagens: 1
Offline

Estou precisando pega um valor depois da barra da url
www.sucessoextra.com.br/meu nome ou codigo

como posso fazer isso sem colocar o /? no final e como capitura essa valor para puxa essa informacao do Bd caso nao tenha retorna para a pagina principal

exem.

se eu entra com a url www.sucessoextra.com.br/006101 ou www.sucessoextra.com.br/nogueiramaier e se nao acha essa referencia no banco de dados retornar para pagina principal e nao da erro 404
sao duas perguntas
como capitura o valor e verificar se esse valor existe se existe ele vai aparece o nome e os dados da pessoa ou retonar para a pagina principal com os valor do compo padrao.

Sou novo em PHP estou comecando a estudo mais nao achei referencia sobre essa assunto ainda na net

grato
nogueria Maier
JJjava
JavaEvangelist
[Avatar]

Membro desde: 16/04/2007 07:55:25
Mensagens: 345
Offline

Pedrosa wrote:Veja se isso te ajuda:


kara nao deu certo esse codigo nao aki, nao sei pq, alguma ideia? capturei o html com o codigo do rapaz ai tranquilo foi, e depois pasei ele para essa função sua...

|||||||||||||||||||||||||||||||||||||||||||||||||||||
[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team