Поиск по именам классов с тире ('-')

Я возиться с lxml в Python, но не могу понять, как использовать cssselect() функция, чтобы получить все divс классом reddit-entryкак это не нравится - персонаж. Любое другое имя класса без - работает отлично.

2 ответа

Решение

Это ошибка в парсере в lxml.cssselect. Я взял на себя сопровождение проекта и извлек его из lxml. Ошибка исправлена ​​в новом cssselect: http://packages.python.org/cssselect/

lxml 2.4 будет использовать новый cssselect, но до тех пор его можно использовать следующим образом:

from cssselect import HTMLTranslator
result = lxml_document.xpath(HTMLTranslator().css_to_xpath('div.reddit-entry'))

Если вы запускаете код, который использует cssselector через xpath, он работает...

obj.xpath("//div[contains(concat(' ', normalize-space(@class), ' '), ' reddit-entry ')]")
Другие вопросы по тегам