Я использую функцию xpath lxml для извлечения частей веб-страницы. Я пытаюсь получить содержимое тега <font>
, который содержит собственные теги html. Если я используюКак получить полное содержимое узла с помощью xpath & lxml?
//td[@valign="top"]/p[1]/font[@face="verdana" and @color="#ffffff" and @size="2"]
я получить нужное количество узлов, но они возвращаются в виде объектов LXML (<Element font at 0x101fe5eb0>
).
Если я использую
//td[@valign="top"]/p[1]/font[@face="verdana" and @color="#ffffff" and @size="2"]/text()
я получаю именно то, что я хочу, за исключением того, что я не получаю какой-либо из HTML кода, который содержится внутри <font>
узлов.
Если я использую
//td[@valign="top"]/p[1]/font[@face="verdana" and @color="#ffffff" and @size="2"]/node()
если получают смесь текста и LXML элементов! (Например, something something <Element a at 0x102ac2140> something
)
Есть в любом случае использовать чистый XPath запрос, чтобы получить содержимое <font>
узлов, или даже заставить LXML для возврата строки содержимого из .xpath()
метода, а не объект LXML?
Обратите внимание, что я возвращаю список из множества узлов из запроса XPath, поэтому решение должно поддерживать это.
только уточнить ... Я хочу, чтобы вернуться something something <a href="url">inside</a> something
из чего-то вроде ...
<font face="verdana" color="#ffffff" size="2"><a href="url">inside</a> something</font>
Хороший вопрос, +1. См. Мой ответ для объяснения. –