Existe algo como nokogiri de Ruby no nodejs? Quero dizer um analisador de HTML fácil de usar.
Eu tinha visto na página de módulos do Node.js. alguns analisadores, mas não consigo encontrar algo bonito e novo.
Existe algo como nokogiri de Ruby no nodejs? Quero dizer um analisador de HTML fácil de usar.
Eu tinha visto na página de módulos do Node.js. alguns analisadores, mas não consigo encontrar algo bonito e novo.
Respostas:
Se você deseja construir o DOM, pode usar o jsdom .
Também há elogios , ele possui a interface jQuery e é muito mais rápido que as versões mais antigas do jsdom, embora atualmente eles tenham desempenho semelhante.
Você pode querer dar uma olhada no htmlparser2 , que é um analisador de fluxo contínuo e, de acordo com sua referência, parece ser mais rápido do que outros, e nenhum DOM por padrão. Ele também pode produzir um DOM, pois também é fornecido com um manipulador que cria um DOM. Este é o analisador usado pelo cheerio.
parse5 também parece uma boa solução. Ele é bastante ativo (11 dias desde a última confirmação desta atualização), compatível com WHATWG e é usado em jsdom , Angular e Polymer .
E se você deseja analisar HTML para raspagem da Web , pode usar o YQL 1 . Existe um módulo de nó para ele. YQL, acho que seria a melhor solução se o seu HTML for de um site estático , já que você conta com um serviço, não com seu próprio código e poder de processamento. Embora observe que não funcionará se a página não for permitida pelo robot.txt do site, o YQL não funcionará com ela.
Se o site que você está tentando criar é dinâmico , você deve usar um navegador sem cabeça, como o phantomjs . Também dê uma olhada no casperjs , se você estiver pensando em phantomjs. E você pode controlar o casperjs a partir do nó com SpookyJS .
Ao lado de phantomjs, há zombiejs . Ao contrário dos phantomjs que não podem ser incorporados nos nodejs, o zombiejs é apenas um módulo do nó.
Há um nettuts + toturial para as últimas soluções.
1 Desde agosto de 2014, a biblioteca YUI, que é um requisito para o YQL, não é mais mantida ativamente, fonte
Experimente https://github.com/tmpvar/jsdom - você fornece um pouco de HTML e um DOM.
Você também pode dar uma olhada no raio-x: https://github.com/lapwinglabs/x-ray