Я использую Python и BeautifulSoup для веб-очистки.
Скажем, у меня есть следующий код html для очистки:
<body>
<div class="product">Product 1</div>
<div class="product">Product 2</div>
<div class="product special">Product 3</div>
<div class="product special">Product 4</div>
</body>
Используя BeautifulSoup, я хочу найти ТОЛЬКО продукты с атрибутом class= "product" (только продукт 1 и 2), а не "специальные" продукты
Если я делаю следующее:
result = soup.find_all('div', {'class': 'product'})
результат включает ВСЕ продукты (1,2,3 и 4).
Что мне делать, чтобы найти продукты, класс которых ТОЧНО соответствует "продукту"?
Код, которым я управлял:
from bs4 import BeautifulSoup
import re
text = """
<body>
<div class="product">Product 1</div>
<div class="product">Product 2</div>
<div class="product special">Product 3</div>
<div class="product special">Product 4</div>
</body>"""
soup = BeautifulSoup(text)
result = soup.findAll(attrs={'class': re.compile(r"^product$")})
print result
Вывод:
[<div class="product">Product 1</div>, <div class="product">Product 2</div>, <div class="product special">Product 3</div>, <div class="product special">Product 4</div>]