how - Python Beautifulsoup Find_all excepto
python find_all class (1)
Estoy luchando para encontrar un sencillo para resolver este problema y espero que puedas ayudar.
He estado usando Beautifulsoup''s find all y probando algunos regex para encontrar todos los artículos excepto la línea ''emptyLine'' en el html a continuación:
<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>
¿Hay una manera simple de encontrar todos los artículos excepto uno incluyendo el ''emptyItem''?
Solo omita elementos que contengan la clase emptyItem
. Muestra de trabajo:
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())
Huellas dactilares:
test0
test1
test2
Tenga en cuenta que div[class^=product_item]
es un selector CSS que combinaría todos los elementos div
con una clase que empiece por product_item
.