Pergunta

Eu tenho uma página da web carregada no navegador (ou seja, seu DOM e posicionamento de elementos são acessíveis para mim) e quero encontrar o elemento de bloco (ou uma lista classificada desses elementos), que provavelmente contém o maior conteúdo (como em um bloco contínuo de texto). O objetivo é excluir coisas como menus, cabeçalhos, rodapés e tal.

Foi útil?

Outras dicas

Primeiro, se você precisar analisar uma página da web, eu usaria Htmlagilitypack para transformá -lo em um XML. Ele acelerará tudo e o permitirá, usando um XPath simples para ir diretamente para o corpo.

Depois disso, você deve executar todos os divs (você pode obter todos os elementos da div em uma lista do pacote de agilidade) e obter o que quiser.

Existe uma técnica simples para fazer isso, com base na análise de como o HTML "barulhento" é, ou seja, qual é a proporção de marcação para o texto exibido através de uma página HTML. A maneira mais fácil de extrair texto útil do HTML arbitrário Descreve este Tex, dando algum código Python para ilustrar.

Cf. também o Html :: ContentExtractor Módulo Perl, que implementa essa ideia. Faria sentido limpar o HTML primeiro, se você quisesse usar isso, usando o BeautifulSoup.

Eu recomendaria a tese de Vit Baisa sobre Limpeza de conteúdo da Web, Acho que ele também tem algum código, mas não consigo encontrar um link para isso. Há também um discussão do mesmo problema no blog Lingpipe de processamento de linguagem natural.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top