Я хочу проанализировать HTML с помощью lxml с помощью выражений XPath. Моя проблема заключается в совпадении содержимого тега:
Например, с учетом
<a href="#" onclick="location.href='http://something'; return false;">Example</a>
Я могу сопоставить атрибут href с помощью
.//a[@href='http://something']
но данное выражение
.//a[.='Example']
или даже
.//a[contains(.,'Example')]
lxml выдает исключение недействительного предиката node.
Что я делаю неправильно?
EDIT:
Пример кода:
from lxml import etree
from cStringIO import StringIO
html = '<a href="#" onclick="location.href='http://something'; return false;">Example</a>'
parser = etree.HTMLParser()
tree = etree.parse(StringIO(html), parser)
print tree.find(".//a[text()='Example']").tag
Ожидаемый результат: 'a'. Я получаю 'SyntaxError: недействительный node предикат'