lxml извлекает нечетные элементы с помощью cssselector

StackOverflow https://stackoverflow.com/questions/1162580

  •  18-09-2019
  •  | 
  •  

Вопрос

В моем тестовом документе у меня есть несколько классов с пометкой "item", в настоящее время я использую следующее для анализа всего в html-файле с этим классом с

Selection = html.cssselect(".item")

Я бы хотел, чтобы он выбирал все нечетные элементы, как это в javascript с помощью jQuery

Selection = $(".item:odd");

Повторяя это дословно, я получаю следующую ошибку

lxml.cssselect.ExpressionError (Ошибка выражения):Символ псевдокласса (u'odd', 6) неизвестен

Я знаю, что это было бы тривиально реализовать самостоятельно, мне было интересно, поддерживается ли это изначально lxml.

Это было полезно?

Решение

"Нечетные" и "четные" объекты являются частью селектора с именем "nth-child()".;взгляните на спецификацию CSS selector для получения более подробной информации:

http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#nth-child-pseudo

Следовательно, вы должны быть в состоянии получить именно то поведение, которое вы хотите (и это работает для меня с cssSelector здесь) с:

".item:nth-child(odd)"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top