select id html,python – 使用lxml.html的cssselect在ID属性中选...

本文探讨了在使用Python的LXML库进行CSS选择器匹配时遇到的语法错误问题,详细描述了不同转义字符组合下的错误表现及可能的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在页面中有一个如下所示的元素:

如果你做document.cssselect(“#cid-694094:评论:188384”),你会得到:

lxml.cssselect.ExpressionError: The psuedo-class Symbol(u’Comment’, 12) is unknown

该解决方案在this question(该人使用Java)处理.

但是,当我在Python中尝试这样的时候:

document.cssselect(r"#cid-694094\:Comment\:188384")

我明白了:

lxml.cssselect.SelectorSyntaxError: Bad symbol ‘cid-694094\’: ‘unicodeescape’ codec can’t decode byte 0x5c in position 10: \ at end of string at [Token(u’#’, 0)] -> None

其原因和建议的解决方案可以在this question找到.如果我理解正确,我应该这样做:

document.cssselect(r"#cid-694094\\:Comment\\:188384")

但这仍然行不通.相反,我再一次得到:

lxml.cssselect.ExpressionError: The psuedo-class Symbol(u’Comment\’, 14) is unknown

谁能告诉我我做错了什么?

自己尝试使用:

import lxml.html

document = lxml.html.fromstring(

''

)

document.cssselect(r"#cid-694094\:Comment\:188384")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值