Parser HTML5 Melhorado para o DomCrawler

Andréia Bohner
1 min readApr 30, 2019

--

O componente DomCrawler facilita a navegação DOM em documentos HTML e XML, tornando-o muito útil para testes funcionais e web scrapers. Internamente, esse componente usa a extensão DOM do PHP (e métodos como loadHtml()) para fazer parse do conteúdo HTML, incluindo HTML5.

Infelizmente, o suporte a HTML5 na extensão DOM do PHP está longe de ser perfeito e inclui algumas inconsistências. Em contraste, a biblioteca HTML5-PHP de terceiros fornece um parser HTML5 compatível com os padrões, e writer escrito inteiramente em PHP. Além disso, tem sido testada em projetos como o Drupal e tem mais de 7 milhões de downloads.

É por isso que no Symfony 4.3 essa biblioteca foi integrada opcionalmente no DomCrawler. Se você não fizer nenhuma alteração na sua aplicação, o componente continuará usando a extensão DOM do PHP. No entanto, se você instalar a biblioteca HTML5-PHP na sua aplicação da seguinte forma:

$ composer require masterminds/html5

Se o conteúdo que estiver sendo feito o parse for HTML5 (começar com <!doctype html>), o componente DomCrawler usará essa biblioteca automaticamente.

Tradução de: New in Symfony 4.3: Better HTML5 parser for DomCrawler

--

--