XPath с ошибкой lxml - PullRequest
       13

XPath с ошибкой lxml

4 голосов
/ 28 февраля 2012

Я пытаюсь запросить с помощью XPath HTML-документ, проанализированный с помощью lxml. Документ представляет собой прямую html-загрузку страницы о Пластик в Википедии . Затем я анализирую это с помощью lxml, отключая замену сущностей, чтобы избежать ошибки с & & reg '

from lxml import etree
root = etree.parse("plastic.html",etree.XMLParser(resolve_entities=False))

Затем я получаю URL-адрес пространства имен

htmltag = root.iter().next()
nsurl = htmltag.nsmap.values()[0]

Теперь я хотел бы использовать запросы xpath для «root» или «htmltag», но я не могу это сделать. Я пробовал разные способы, но мне кажется наиболее правильной следующая форма, которая в любом случае выдает ошибки.

root.xpath('//ns:body',namespace={'ns',nsurl})

И вот что я получаю

XPathResultError: Unknown return type: dict

Я выполняю команды в консоли IPython, но не думаю, что это может быть проблемой. Что я делаю не так?

1 Ответ

15 голосов
/ 11 октября 2012

Это простое заклинание мисс.Вы должны использовать namespaces вместо namespace.

...