【问题标题】:Convert element to css selector in python在python中将元素转换为css选择器
【发布时间】:2017-12-03 23:47:01
【问题描述】:

我正在尝试转换以下元素:

@[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

【问题讨论】:

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


    【解决方案1】:

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

    [width="300"]
    

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

    [width=300]
    

    【讨论】:

      猜你喜欢
      • 2012-01-17
      • 1970-01-01
      • 2012-09-16
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2015-12-05
      相关资源
      最近更新 更多