Jump to content

Obter o trecho de texto contido no nível mais profundo da estrutura HTML usando Java


Baralou

Postagens Recomendadas

Boa noite, tudo joia? 
Então, sou bem novata na  área de programação,  e estou tendo dificuldades em uma questão. 

 

Objetivo: a partir de uma URL obtenha o trecho de texto contido no nível mais profundo da estrutura HTML de seu conteúdo usando Java JDK17.

Não pode usar bibliotecas e frameworks externos ao JDK. Também não é permitido o uso de packages e classes nativos do JDK relacionados à manipulação de HTML, XML ou DOM(como javax.xml ou quaisquer outros).


Estou tento dificuldades para dar inicio, queria algumas dicas de como achar conteúdo sobre html + java, e também queria um norte para começar o meu código.

 

 

Desde já, obrigada a todos!  😄

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • Casa do Desenvolvedor mudou o título para Obter o trecho de texto contido no nível mais profundo da estrutura HTML usando Java

Aqui estão os passos para abordar essa tarefa:

  1. Obtenha o Conteúdo HTML da URL:
    • Use a classe java.net.URL para abrir uma conexão com a URL desejada.
    • Leia o conteúdo HTML da URL.
  2. Analise o Conteúdo HTML:
    • Você precisará percorrer a estrutura HTML para encontrar o trecho de texto desejado.
    • Evite usar classes nativas do JDK relacionadas a DOM ou XML.
  3. Identifique o Nível Mais Profundo:
    • A estrutura HTML é organizada em tags aninhadas. O nível mais profundo é aquele que não contém outras tags dentro dele.
  4. Extraia o Trecho de Texto:
    • Encontre o elemento HTML que contém o texto desejado.
    • Extraia o texto desse elemento.

Aqui está um exemplo simplificado de como você pode começar:
 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        try {
            // Substitua pela sua URL real
            String urlString = "https://www.example.com";
            URL url = new URL(urlString);

            // Abra uma conexão e leia o conteúdo HTML
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            StringBuilder htmlContent = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                htmlContent.append(line);
            }
            reader.close();

            // Use expressões regulares para encontrar o trecho desejado
            String regex = "<p>(.*?)</p>"; // Exemplo: procurando por parágrafos
            Pattern pattern = Pattern.compile(regex);
            Matcher matcher = pattern.matcher(htmlContent.toString());
            while (matcher.find()) {
                String trechoDesejado = matcher.group(1);
                System.out.println("Trecho encontrado: " + trechoDesejado);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


O objeto matcher é criado a partir de uma expressão regular (no exemplo, estamos procurando por parágrafos no conteúdo HTML).

O método group(1) retorna o primeiro grupo de captura correspondente à expressão regular.

No nosso caso, estamos usando a expressão <p>(.*?)</p>, que captura o conteúdo entre as tags <p> e </p>.

Portanto, matcher.group(1) retorna o texto dentro do primeiro par de tags <p> encontrado no conteúdo HTML.

Em resumo, esse trecho de código extrai o trecho de texto desejado (no caso, o conteúdo de um parágrafo) do conteúdo HTML usando expressões regulares e o armazena na variável trechoDesejado.

Espero que isso consiga lhe ajudar a ter uma ideia de como começar 😄

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...