[英]How to extract text from HTML (after certain string)
我有以下HTML:
<li class="group-ib medium-gap line-120 vertical-offset-10">
<i class="fa fa-angle-right font-bold font-95 text-primary text-dark">
::before
</i>
<span>
abc:
<b class="text-primary text-dark">st1</b>
</span>
</li>
我想提取始终在abc
之后发生的str1
。 我能够通过使用XPATH
链接来做到这一点:
xpath('.//b[@class = "text-primary text-dark"]')[0].text
但是解决方案取决于它是该特定类的首次出现,该类不止一次出现并且并不总是以相同的顺序出现。 我想知道是否有办法在HTML
搜索abc
并提取后续文本?
也许找到包含abc
的元素,如果需要,导航到子/父级,获取文本。
选择器示例:
查找包含abc
文本的any(*表示任何标签)元素,然后选择任何子级。
//*[contains(text(), 'abc')]/*
查找包含abc
文本的any(*表示任何标签)元素,然后选择其b
子元素。
//*[contains(text(), 'abc')]/b
查找具有包含文本abc
的元素的li
元素,然后从其内部(在li内部)选择b
元素,请使用//
因为b
不是li
第一个子元素。
//li[.//[contains(text(), 'abc')]]//b
如果您知道abc
则从此处开始,查看返回的元素,以及是否需要导航到父/祖/子。
有关xpath的更多信息,请参见w3schools xpath选择器
以下xpath应该提供您要搜索的文本
//*[contains(text(),'abc')]/*[@class='text-primary text-dark'][1]/text()
假设您要查找的str1
始终位于属性为class=text-primary text-dark
元素下
还假设您想获得第一个这样的出现(忽略其他text-primary text-dark
s)-这就是为什么[1]
此xpath确保在搜索这些类之前,要搜索的节点的文本为abc
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.