Как получить HTML-элементы с несколькими классами CSS - PullRequest
38 голосов
/ 07 октября 2010

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

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

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

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

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

Что будет тогда с xpath?

Ответы [ 3 ]

78 голосов
/ 07 октября 2010

Вы ищете следующее выражение:

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

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

http://xpathvisualizer.codeplex.com/

1 голос
/ 18 апреля 2018

Я думаю, что это выражение, которое вы ищете, это

//div[starts-with(@class, "class1")]/text()
0 голосов
/ 18 октября 2016

Существует полезный пакет python, который называется cssselect.

из cssselect import CSSSelector CSSSelector ('div.gallery'). Path

Создает используемый XPath:

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

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

...