Как получить html-элементы с несколькими классами CSS

Я знаю, как получить список DIV одного и того же класса css, например

<div class="class1">1</div>
<div class="class1">2</div>

используя xpath //div[@class='class1']

Но как, если div имеет несколько классов, например

<div class="class1 class2">1</div>

Как будет выглядеть xpath?

Ответ 1

Выражение, которое вы ищете, это:

//div[contains(@class, 'class1') and contains(@class, 'class2')]

Я очень предлагаю визуализатор XPath, который может помочь вам легко отлаживать выражения xpath. Его можно найти здесь:

http://xpathvisualizer.codeplex.com/

Ответ 2

Там есть полезный пакет python cssselect.

из cssselect import CSSSelector CSSSelector ( 'div.gallery'). Путь

Создает полезный XPath:

descendant-or-self:: div [@class и содержит (concat ('', normalize-space (@class), ''), 'gallery')]

Это очень похоже на ответ Flynn1179.