Quiero analizar HTML con lxml usando expresiones XPath. Mi problema es coincidente de los contenidos de una etiqueta:¿Cómo puedo unir el contenido de un elemento en XPath (lxml)?
Por ejemplo da el elemento
<a href="http://something">Example</a>
puedo coincidir con el atributo href usando
.//a[@href='http://something']
pero la da la expresión
.//a[.='Example']
o incluso
.//a[contains(.,'Example')]
lxml arroja la excepción 'predicado de nodo no válido'.
¿Qué estoy haciendo mal?
EDIT:
código Ejemplo:
from lxml import etree
from cStringIO import StringIO
html = '<a href="http://something">Example</a>'
parser = etree.HTMLParser()
tree = etree.parse(StringIO(html), parser)
print tree.find(".//a[text()='Example']").tag
salida esperada es 'a'. Recibo el mensaje 'SyntaxError: predicado nodo no válido'
En lugar de utilizar StringIO, podría haber usado etree.fromstring() para analizar su html. –