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.
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.
Da um olhada em Regex também.
Veja se isso te ajuda:
private static String removeHTML(String html){
String noTagRegex = "<[^>]+>";
return html.replaceAll(noTagRegex, "").trim();
}
tasio, como você obteve o código HTML?
Obrigado.
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í…!
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();
}
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");
}
}
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?
Tasio, funcionou obrigado!
Fnascimento, estou querendo pegar o codigo HTML, o código do tasio funcionou pra isso.
Blz cara, qualquer coisa estamos aí. E aproveito tbm pra agradecer as dicas da galera aí que responderam minha dúvida… valeu…
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/.
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 :
String resultado = new String();//resposta do servidor;
int comeca = resultado.indexOf("<title>")+7;
int termina = resultado.indexOf("</title>",comeca);
String titulo = resultado.substring(comeca,termina);
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
[quote=Pedrosa]Veja se isso te ajuda:
private static String removeHTML(String html){
String noTagRegex = "<[^>]+>";
return html.replaceAll(noTagRegex, "").trim();
}
[/quote]
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…
Olha só, num trabalho da faculdade q eu fiz onde trabalhei com parse de HTML usei a biblioteca Jericho. Vale dar uma conferida.
[quote=Pedrosa]Veja se isso te ajuda:
private static String removeHTML(String html){
String noTagRegex = "<[^>]+>";
return html.replaceAll(noTagRegex, "").trim();
}
[/quote]
revendo o codido consegui fazer funcionar mas tive q usar um caracter por vez tipo: String noTagRegex = “<”; depois String noTagRegex = “>”;
ai funcionou agora tudo junto nao …