簡體   English   中英

如何從HTML中提取文本(在特定字符串之后)

[英]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的元素,如果需要,導航到子/父級,獲取文本。
選擇器示例:

  1. 查找包含abc文本的any(*表示任何標簽)元素,然后選擇任何子級。
    //*[contains(text(), 'abc')]/*

  2. 查找包含abc文本的any(*表示任何標簽)元素,然后選擇其b子元素。
    //*[contains(text(), 'abc')]/b

  3. 查找具有包含文本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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM