簡體   English   中英

Python獲取帶有特定文本的標簽

[英]Python get tag with certain text

我用html塊字符串,例如

a = '<div>Test moree test <div> London is ... <p>mooo</p></div></div>'

例如,我需要阻止某些文本

super_func("London", a) ==> '<div> London is ... <p>mooo</p></div>'
super_func('mooo', a) = '<p>mooo</p>'

您可以使用以下XPath查詢來查找包含某些文本的元素,而不管元素名稱及其在HTML文檔中的位置如何:

//*[contains(text(),'certain text')]

這是一個使用lxml.html庫的工作示例:

from lxml import html

def super_func(keyword, htmldoc):
    query = '//*[contains(text(),"{0}")]'
    result = htmldoc.xpath(query.format(keyword))
    if len(result) > 0:
        return html.tostring(result[0])
    else:
        return ''

a = '<div>Test moree test <div> London is ... <p>mooo</p></div></div>'
doc = html.fromstring(a)
text = 'London'
print super_func(text, doc)
text = 'mooo'
print super_func(text, doc)

輸出:

<div> London is ... <p>mooo</p></div>
<p>mooo</p>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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