У меня есть элемент на странице, который выглядит следующим образом:
<a id="cid-694094:Comment:188384" name="694094:Comment:188384"></a>
Если вы сделаете document.cssselect("#cid-694094:Comment:188384")
, вы получите:
lxml.cssselect.ExpressionError:Символ псевдо-класса (u'Comment ', 12) неизвестен
Решение для этого решено в этом вопросе (человек использовал Java).
Тем не менее, когда я пытаюсь сделать это в Python следующим образом:
document.cssselect(r"#cid-694094\:Comment\:188384")
, я получаю:
lxml.cssselect.SelectorSyntaxError: Неверный символ 'cid-694094 \': 'Кодек unicodeescape 'не может декодировать байт 0x5c в позиции 10: \ в конце строки в [Token (u' # ', 0)] -> Нет
Причина этого и предлагаемое решениеможно найти в этот вопрос .Если я правильно понимаю, я должен делать:
document.cssselect(r"#cid-694094\\:Comment\\:188384")
Но это все равно не работает.Вместо этого я снова получаю:
lxml.cssselect.ExpressionError: Символ класса psuedo (u'Comment \ ', 14) неизвестен
Может кто-нибудь сказать мнечто я делаю не так?
Попробуйте сами, используя:
import lxml.html
document = lxml.html.fromstring(
'<a id="cid-694094:Comment:188384" name="694094:Comment:188384"></a>'
)
document.cssselect(r"#cid-694094\:Comment\:188384")