with how find_all div all python python-3.x beautifulsoup html-parsing

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 .