Как уже говорилось, в настоящее время не существует удовлетворительного решения только со стандартной библиотекой. Я столкнулся с той же проблемой, что и вы, когда пытался запустить одну из своих программ в устаревшей среде хостинга без возможности установки собственных расширений и только python2.6. Решение:
Grab этот файл и последняя стабильная BeautifulSoup версия серии 3er (3.2.1 на данный момент). Из tar-файла там просто выберите BeautifulSoup.py
, это единственный, который вам действительно нужен для доставки с вашим кодом. Таким образом, у вас есть эти два файла на вашем пути, и все, что вам нужно сделать, чтобы получить случайный объект etree
из какой-либо строки HTML, как вы бы получили его из lxml, это:
from StringIO import StringIO
import ElementSoup
tree = ElementSoup.parse(StringIO(input_str))
Для самого lxml и html5lib требуется компиляция некоторого C-кода, чтобы он работал. Значительно больше усилий, чтобы заставить их работать, и если ваша среда ограничена или ваша целевая аудитория не желает этого делать, избегайте их.