例如,我有这个html。
<div class="item-1">a</div>
<div class="item-3">b</div>
<div class="item-6">c</div>
<div class="item-8">aaaaaa</div>
...... item-x keep increasing randomly on it class
<div class="item-100">aaaaaa</div>如果x的值在5到10之间,我想要丢弃所有的类项目-x。
我知道如何使用部分类名进行搜索。
text = soup.select('div[class*="item-"]')但我不知道如何为它添加条件
发布于 2022-06-13 09:24:27
您可以简单地使用for循环。
import bs4 as bs
html = """
<div class="item-1">a</div>
<div class="item-3">b</div>
<div class="item-6">c</div>
<div class="item-8">aaaaaa</div>
<div class="item-100">aaaaaa</div>
"""
soup = bs.BeautifulSoup(html, 'lxml')
for i in range(5, 10):
text = soup.select('div[class*="item-' + str(i) + '"]')
if text:
print(text)发布于 2022-06-13 09:26:27
您可以使用由,连接的多个CSS选择器。
html_doc = """\
<div class="item-1">a</div>
<div class="item-3">b</div>
<div class="item-6">c</div>
<div class="item-8">aaaaaa</div>
<div class="item-100">aaaaaa</div>
"""
soup = BeautifulSoup(html_doc, "html.parser")
texts = soup.select(",".join(f"div.item-{i}" for i in range(5, 11)))
for text in texts:
print(text)指纹:
<div class="item-6">c</div>
<div class="item-8">aaaaaa</div>https://stackoverflow.com/questions/72600085
复制相似问题