Разбор HTML, который не является допустимым XML - PullRequest
0 голосов
/ 07 марта 2011

Мне нужно проанализировать веб-сайт с множеством вложенных <div>.Я попытался с помощью XML::Simple получить красивую древовидную структуру, но синтаксический анализ все время терпит неудачу, потому что, кажется, где-то два или три не закрыты <p>.Я попробовал HTML::Parser, но это позволяет мне определить только некоторые функции-обработчики, которые дают мне правильные теги, но не их вложенные элементы.

Есть способ получить XML::Simple, принять недопустимый XML или HTML::Parser дать мне удобную древовидную структуру?

Ответы [ 3 ]

6 голосов
/ 07 марта 2011

Альтернативой чему-либо, основанному на HTML :: TreeBuilder , является XML :: LibXML-> load_html (...) .

6 голосов
/ 07 марта 2011

HTML :: TreeBuilder создает красивые деревья и предоставляет множество удобных методов для его обхода.

3 голосов
/ 08 марта 2011

Но действительно ли это HTML? Если это так, XML :: LibXML сделает изумительную работу, если вы используете функции парсинга HTML. Это молниеносно и обеспечивает отличный интерфейс. Он даже должен иметь возможность обрабатывать некоторые плохие HTML с помощью опции recover.

В качестве альтернативы, HTML :: Parser (часто используется через HTML :: TreeBuilder или HTML :: TreeBuilder :: XPath ) известен для обработки плохого HTML , Хотя это будет не так быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...