С чем вам удобнее? Большинство людей склонны находить селекторы CSS проще, и если другие будут поддерживать вашу работу, вы должны принять это во внимание. Одной из причин этого может быть то, что меньше беспокоятся о пространствах имен XML, которые являются источником многих ошибок. Селекторы CSS, как правило, более компактны, чем эквивалентные XPath, но только вы можете решить, является ли это важным фактором или нет. Я хотел бы отметить, что не случайно язык выбора jquery смоделирован на селекторах CSS, а не на XPath.
С другой стороны, XPath - более выразительный язык для общих манипуляций с DOM. Например, нет CSS-селектора, эквивалентного осям «родителя» или «предка», и нет способа напрямую обращаться к текстовым узлам, эквивалентным «text ()» в XPath. Напротив, я не могу думать ни о каком пути DOM, который может быть выражен в селекторах CSS, но не в XPath, хотя E [foo ~ = "warning"] и E [lang | = "en"] явно хитры в XPath.
То, что CSS-селекторы имеют, что XPath не является псевдоклассами, хотя, если вы выполняете манипуляции с DOM на стороне сервера, они вряд ли будут вам полезны.
Что касается того, что приводит к большей скорости извлечения, я не знаю lxml, но я ожидаю, что эквивалентные пути будут иметь очень похожие характеристики производительности.