【问题标题】:Searching on class names with a dash ('-')使用破折号 ('-') 搜索类名
【发布时间】:2012-06-23 13:10:23
【问题描述】:

我在 Python 中使用 lxml,但似乎无法弄清楚如何使用 cssselect() 函数来获取所有 divreddit-entry 类,因为它似乎不喜欢 - 字符。没有- 的任何其他类名都可以正常工作。

【问题讨论】:

  • 嗯...不确定 - obj.xpath('//div[@class="reddit-entry"]') 有效吗?

标签: python python-2.7 lxml canonical-quickly


【解决方案1】:

这是 lxml.cssselect 中解析器的一个错误。我接管了项目的维护,并从 lxml 中提取了它。该错误已在新的 cssselect 中修复:http://packages.python.org/cssselect/

lxml 2.4 将使用新的 cssselect,但在那之前使用它的方式是:

from cssselect import HTMLTranslator
result = lxml_document.xpath(HTMLTranslator().css_to_xpath('div.reddit-entry'))

【讨论】:

    【解决方案2】:

    如果您通过 xpath 运行 cssselector 使用的代码,它确实可以工作...

    obj.xpath("//div[contains(concat(' ', normalize-space(@class), ' '), ' reddit-entry ')]")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多