Tag Archives: bibliotecas de terceiros

Dica #3: Olá SGMLReader; Adeus Regex;

Eu tenho uma lista das próximas dicas que pretendo escrever sobre, essa não estava prevista, mais depois de um certo esforço para fazer isso funcionar, resolvi registrar.

Durante meu aprendizado de python conheci a htmllib, é uma biblioteca para fazer parse de documentos HTML. Antigamente eu usava regex para fazer buscas em documentos HTML, sim regex! Acredito que pior do que regex é usar o IndexOf da classe string. O problema é que regex é algo bem complicado, precisava ter um guia rápido aberto, além do mais os patterns tendem a ficar cada vez maior e mais difícil de entender. Como diria o Ramon Durães, não tem que ser difícil. De fato, não tem, a htmllib resolveu o problema, consegui de forma simples procurar tags e seus atributos usando essa super biblioteca.

De volta ao C#, me deparei com exatamente o mesmo problema. Mas dessa vez fui atrás de algo parecido e achei o SGMLReader. Pelo que andei lendo o propósito dele é converter documentos HTML em XHTML, de qualquer forma consegui novamente resolver o problema. Essa biblioteca gera uma documento XML formatado de forma perfeita, facilitando o uso do XPATH. Apenas um detalhe, ela é mais lenta que a htmlib do python, mas é bem mais flexível, você tem acesso ao XmlDocument contendo todo o código da página.

Vou deixar aqui um exemplo funcional usando essa biblioteca para resgatar todos os títulos dos posts do meu blog.

Clique aqui para fazer o download de 'SGMLReader' (92.96 kB)

Exemplo da saída do programa acima.

SGMLReader

Sharing Buttons by Linksku