[英]How to find elements whose id has prefix "Translations_"?
I have a html我有一个 html
<details data-level="2" open="">
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations">Translations</h5>
</summary>
</details>
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations_2">Translations</h5>
</summary>
</details>
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations_6">Translations</h5>
</summary>
</details>
</details>
I would like to extract such elements which are signified by Translation
我想提取
Translation
所表示的这些元素
<h5 id="Translations">Translations</h5>
<h5 id="Translations_2">Translations</h5>
<h5 id="Translations_6">Translations</h5>
With soup.select('details[data-level] > summary[class] > h5[id="Translations"]')
, I'm able to extract only the first element.使用
soup.select('details[data-level] > summary[class] > h5[id="Translations"]')
,我只能提取第一个元素。 Could you please explain how to modify my code to do so?你能解释一下如何修改我的代码吗?
from bs4 import BeautifulSoup
texte = """
<details data-level="2" open="">
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations">Translations</h5>
</summary>
</details>
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations_2">Translations</h5>
</summary>
</details>
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations_6">Translations</h5>
</summary>
</details>
</details>
"""
soup = BeautifulSoup(texte, 'html.parser')
soup.select('details[data-level] > summary[class] > h5[id="Translations"]')
You can use a attr^=value
CSS selector .您可以使用
attr^=value
CSS 选择器。
Represents elements with an attribute name of attr whose value is prefixed (preceded) by value.
表示属性名称为 attr 的元素,其值以值作为前缀(在前)。
from bs4 import BeautifulSoup
data = '''\
<details data-level="2" open="">
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations">Translations</h5>
</summary>
</details>
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations_2">Translations</h5>
</summary>
</details>
<details data-level="5" open="">
<summary class="section-heading">
<h5 id="Translations_6">Translations</h5>
</summary>
</details>
</details>
'''
soup = BeautifulSoup(data, 'html.parser')
for e in soup.select('h5[id^=Translations]'):
print(e)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.