我正在使用以下代码在一段 HTML 代码中查找属性:
results = soup.findAll("svg", {"data-icon" : "times"})
这有效,它返回给我一个带有标签和属性的列表。但是,我还想从 HTML 代码的那部分移动到它下面的兄弟(如果这是正确的术语),并检索该段落的内容。请参见下面的示例。
<div class="382"><svg aria-hidden="true" data-icon="times".......</svg></div>
<div class="405"><p>Example</p></div>
我似乎无法弄清楚如何正确地做到这一点。搜索 div 类名不起作用,因为类名是随机的。
您可以使用 CSS 选择器+
:
from bs4 import BeautifulSoup
html_doc = """
<div class="382"><svg aria-hidden="true" data-icon="times"> ... </svg></div>
<div class="405"><p>Example</p></div>
"""
soup = BeautifulSoup(html_doc, "html.parser")
div = soup.select_one('div:has(svg[data-icon="times"]) + div')
print(div.text)
印刷:
Example
或者没有 CSS 选择器:
div = soup.find("svg", attrs={"data-icon": "times"}).find_next("div")
print(div.text)
印刷:
Example
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句