Я пытался вычеркнуть часть текста из некоторых HTML-элементов с помощью xapth, но, похоже, я что-то не так, поэтому я не могу это сделать.
HTML-элементы:
htmlelem = """
<div class="content">
<p>Type of cuisine: </p>International
</div>
"""
Я бы хотел выкопать International
, используя xpath.Я знаю, что могу добиться успеха, используя .next_sibling
Если я хочу извлечь то же самое, используя css selector
, но мне не интересно идти по этому пути.
Тем не менее, если я попытаюсь таким образом, я могу получить то же самоеиспользуя xpath
:
tree.xpath("//*[@class='content']/p/following::text()")[0]
Но вышеприведенное выражение - не то, что мне нужно, потому что я не могу использовать то же самое в веб-драйвере selenium, если я придерживаюсь driver.find_element_by_xpath()
Единственный способ, которым меня интересует, - это, как показано ниже, но он не работает:
"//*[@class='content']/p/following::*"
Пример из реальной жизни:
from lxml.html import fromstring
htmlelem = """
<div class="content">
<p>Type of cuisine: </p>International
</div>
"""
tree = fromstring(htmlelem)
item = tree.xpath("//*[@class='content']/p/following::text()")[0].strip()
elem = tree.xpath("//*[@class='content']/p/following::*")[0].text
print(elem)
В приведенном выше примере я могу добиться успехапечать item
, но не может печатать elem
.Однако я бы хотел изменить выражение, используемое в elem
.
Как я могу заставить его работать так, чтобы тот же xpath
я мог использовать в библиотеке lxml
или вselenium