find_all с несколькими выражениями для тегов, включающих оба указанных значения атрибута - PullRequest
0 голосов
/ 31 мая 2019

Я работаю над извлечением всех тегов из файла HTML с обоими значениями атрибута h5 и ls3, но я не уверен, как отформатировать поиск, чтобы он не возвращал все экземпляры h5 и все экземпляры ls3.

regex = re.compile('h5')
re2 = re.compile('ls3')

ly = []


for EachPart in soup.find_all("div", {"class": regex}):
    ly.append(EachPart)

В настоящее время выполняется поиск только для h5 (как и ожидалось), но как мне отформатировать поиск find_all для поиска re2 вместе с regex? По сути, ниже мне нужно потянуть теги, которые имеют h5 и ls3, а не те, которые исключительно h5

Пример HTML-тегов:

<div class="t m0 x42 h5 y18b ff2 fs2 fc0 sc0 ls0 ws0">total </div>

<div class="t m0 xbd h5 y18b ff2 fs2 fc0 sc0 ls0 ws0"> </div>

<div class="t m0 x79 h5 y18b ff2 fs2 fc0 sc0 ls3 ws0">£m<span class="ls0"> </span></div>

<div class="t m0 x0 h5 y628 ff2 fs2 fc0 sc0 ls3 ws0">17.<span class="ls0"> <span class="_ _4"></span>Website policy<span class="_ _0"></span> </span></div>

1 Ответ

0 голосов
/ 31 мая 2019

Использовать селекторы css с синтаксисом AND. Ниже указаны элементы с обоими атрибутами. Более эффективно, чем find и регулярное выражение.

items = [item.text for item in soup.select('.ls3.h5')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...