Carregando...
Carregando...
Ajude a melhorar a plataforma
Na programação web com Python, entender como analisar e manipular o conteúdo de páginas HTML é crucial. O módulo html.parser oferece uma forma robusta de interagir com estes dados, permitindo aos desenvolvedores extrair informações específicas, como URLs de tags de âncora. Este processo, conhecido como parsing, transforma um documento HTML em uma série de tokens, facilitando a identificação e extração de elementos específicos. Será tomada como exemplo uma aplicação específica: - imagine que você está desenvolvendo uma aplicação Python para extrair todos os links de uma página web dada. Utilizando o módulo html.parser, você cria uma subclasse de HTMLParser e redefine o método handle_starttag para identificar tags de abertura ou de início do tipo âncora (<a>) e extrair o valor do atributo href. Este método torna a tarefa de capturar links numa página HTML não apenas possível, mas também relativamente simples.
Dado este contexto, identifique qual das seguintes afirmações é verdadeira:
I. A classe HTMLParser não deve ser usada diretamente, mas sim como uma superclasse da qual o desenvolvedor deriva analisadores com diferentes lógicas. O método handle_starttag, por exemplo, pode ser redefinido de diferentes modos dependendo da lógica a ser usada para a análise das tags de abertura.
II. A classe HTMLParser automaticamente processa e extrai todos os URLs de tags de âncora sem necessidade de redefinição de métodos.
III. A função urlopen do módulo urllib.request é usada para ler um conteúdo, ou seja, um recurso.
IV. Para extrair dados de um documento HTML, é necessário converter o documento para um formato JSON antes de usar HTMLParser.
Está correto o que se afirma em:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
🎓 Gabarito Comentado (AVA):
A afirmativa I "A classe HTMLParser não deve ser usada diretamente, mas sim como uma superclasse da qual o desenvolvedor deriva analisadores com diferentes lógicas. O método handle_starttag, por exemplo, pode ser redefinido de diferentes modos dependendo da lógica a ser usada para a análise das tags de abertura" é correta, pois para customizar a análise e extrair informações específicas - como no exemplo do enunciado: URLs de tags de âncora - é necessário redefinir o método handle_starttag dentro de uma subclasse de HTMLParser. Isso permite ao desenvolvedor especificar o comportamento desejado ao encontrar uma tag de início.
A afirmativa II "A classe HTMLParser automaticamente processa e extrai todos os URLs de tags de âncora sem necessidade de redefinição de métodos" é incorreta, já que a classe HTMLParser não extrai automaticamente URLs ou qualquer outra informação específica sem que seus métodos manipuladores sejam adequadamente redefinidos pelo desenvolvedor para implementar a lógica desejada.
A afirmativa III "A função urlopen do módulo urllib.request é usada para ler um conteúdo, ou seja, um recurs" é correta, visto que a função urlopen do módulo urllib.request é frequentemente usada para acessar e ler o conteúdo de páginas web.
A afirmativa IV "Para extrair dados de um documento HTML, é necessário converter o documento para um formato JSON antes de usar HTMLParser" é correta, pois não é necessário converter um documento HTML para JSON para analisá-lo com HTMLParser. O módulo pode ser projetado para trabalhar diretamente com strings de HTML.