使用CSS或XPath选择器解析HTML?

使用CSS或XPath选择器解析HTML?,html,css,parsing,xpath,css-selectors,Html,Css,Parsing,Xpath,Css Selectors,我的目标是用lxml解析HTML,它支持XPath和CSS选择器 我可以将我的模型属性绑定到CSS或XPath,但我不确定哪一个是最好的,例如,更改HTML布局时更少的麻烦,更简单的表达式,更高的提取速度 在这种情况下,你会选择什么?哪一种更适合你?大多数人倾向于发现CSS选择器更容易,如果其他人愿意维护您的工作,您应该考虑到这一点。这样做的一个原因可能是,不必太担心XML名称空间,因为它是许多错误的根源。CSS选择器往往比等价的XPath更紧凑,但只有您可以决定这是否是相关因素。我要指出的是,

我的目标是用lxml解析HTML,它支持XPath和CSS选择器

我可以将我的模型属性绑定到CSS或XPath,但我不确定哪一个是最好的,例如,更改HTML布局时更少的麻烦,更简单的表达式,更高的提取速度


在这种情况下,你会选择什么?

哪一种更适合你?大多数人倾向于发现CSS选择器更容易,如果其他人愿意维护您的工作,您应该考虑到这一点。这样做的一个原因可能是,不必太担心XML名称空间,因为它是许多错误的根源。CSS选择器往往比等价的XPath更紧凑,但只有您可以决定这是否是相关因素。我要指出的是,jquery的选择语言是基于CSS选择器而不是XPath建模的,这并非偶然

另一方面,XPath是用于一般DOM操作的更具表现力的语言。例如,并没有与“父”或“祖先”轴等效的CSS选择器,也并没有直接寻址XPath中与“text()”等效的文本节点的方法。相比之下,我想不出任何DOM路径可以用CSS选择器表示,但不能用XPath表示,尽管E[foo~=“warning”]和E[lang |=“en”]在XPath中显然很棘手

CSS选择器所具有的XPath不是伪类,但如果您正在进行服务器端DOM操作,这些类可能对您没有用处

至于哪种方法可以提高提取速度,我不知道lxml,但我希望等效路径具有非常相似的性能特征