在python

时间:2017-12-03 15:45:41

标签: python python-3.x xpath css-selectors lxml.html

我试图转换以下元素:

@[width="300"]

我将xpath转换为:

//*[@width="300"]

到css选择器。因为如果我运行lxml:

selector = "@[width="300"]"
tree = lxml.html.fromstring(fparse(fileIn).to_string())
tree.cssselect(selector)

我收到以下错误:

Expected selector, got <DELIM '@' at 0>

如何在不使用lxml本身未包含的外部库的情况下将其转换为?我需要使用cssselect而不是xpath,因为我有其他情况我的程序需要解析选择器,如下所示:

@[width="300"] > p > a

1 个答案:

答案 0 :(得分:1)

在CSS选择器中,您不需要@属性定义:

[width="300"]

对于此特定值,双引号实际上是额外的(只要属性值为字母数字):

[width=300]