2013-11-26 2 views
0

beautifulsoup4 Случаем, чтобы урезать недопустимый (я думаю) html в некоторых случаях. Я хотел бы заставить его не делать этого. Я предполагаю, что там нет «формального» способа, но, возможно, вы достигли этого раньше?Предотвращение bs4 от усечения html

+0

Просьба привести пример ввода HTML, вывод, который вы видите, используемый вами код, версию bs4, которую вы используете, и какой парсер (и версию парсера, и, если это lxml, который версия libxml2). – abarnert

ответ

1

Если HTML не работает, восстановление дерева работоспособных элементов не всегда возможно. Тем не менее, вы можете попробовать использовать разные парсеры. Не все парсеры могут обрабатывать разбитый HTML одинаково.

html5lib анализатора особенно искусен в работе с разбитой HTML, обработка такого ввода так же, как большинство из них браузеров:

soup = BeautifulSoup(htmlcontent, 'html5') 

Вы можете также попробовать lxml здесь. Обе библиотеки являются отдельными установками.

+0

Спасибо. Производительность не вызывает беспокойства здесь, просто любопытно, является ли «html5» медленным, или это только я? – nutship

+1

'html5lib' действительно медленнее, он делает намного больше работы. –

Смежные вопросы