Python Beautifulsoup Find_all 除了
Python Beautifulsoup Find_all except
我正在努力寻找一个简单的方法来解决这个问题,希望你能提供帮助。
我一直在使用 Beautifulsoup 的全部查找并尝试使用一些正则表达式来查找除下面 html 中的 'emptyLine' 行之外的所有项目:
<div class="product_item0 ">...</div>
<div class="product_item1 ">...</div>
<div class="product_item2 ">...</div>
<div class="product_item0 ">...</div>
<div class="product_item1 ">...</div>
<div class="product_item2 ">...</div>
<div class="product_item0 ">...</div>
<div class="product_item1 last">...</div>
<div class="product_item2 emptyItem">...</div>
有没有一种简单的方法可以找到除 'emptyItem' 之外的所有项目?
只需跳过包含 emptyItem
class 的元素。工作样本:
from bs4 import BeautifulSoup
data = """
<div>
<div class="product_item0">test0</div>
<div class="product_item1">test1</div>
<div class="product_item2">test2</div>
<div class="product_item2 emptyItem">empty</div>
</div>
"""
soup = BeautifulSoup(data, "html.parser")
for elm in soup.select("div[class^=product_item]"):
if "emptyItem" in elm["class"]: # skip elements having emptyItem class
continue
print(elm.get_text())
打印:
test0
test1
test2
请注意,div[class^=product_item]
是一个 CSS 选择器,它将匹配所有 div
以 product_item
开头的 class 元素。
我正在努力寻找一个简单的方法来解决这个问题,希望你能提供帮助。
我一直在使用 Beautifulsoup 的全部查找并尝试使用一些正则表达式来查找除下面 html 中的 'emptyLine' 行之外的所有项目:
<div class="product_item0 ">...</div>
<div class="product_item1 ">...</div>
<div class="product_item2 ">...</div>
<div class="product_item0 ">...</div>
<div class="product_item1 ">...</div>
<div class="product_item2 ">...</div>
<div class="product_item0 ">...</div>
<div class="product_item1 last">...</div>
<div class="product_item2 emptyItem">...</div>
有没有一种简单的方法可以找到除 'emptyItem' 之外的所有项目?
只需跳过包含 emptyItem
class 的元素。工作样本:
from bs4 import BeautifulSoup
data = """
<div>
<div class="product_item0">test0</div>
<div class="product_item1">test1</div>
<div class="product_item2">test2</div>
<div class="product_item2 emptyItem">empty</div>
</div>
"""
soup = BeautifulSoup(data, "html.parser")
for elm in soup.select("div[class^=product_item]"):
if "emptyItem" in elm["class"]: # skip elements having emptyItem class
continue
print(elm.get_text())
打印:
test0
test1
test2
请注意,div[class^=product_item]
是一个 CSS 选择器,它将匹配所有 div
以 product_item
开头的 class 元素。