【问题标题】:Python CSS ParserPython CSS 解析器
【发布时间】:2012-12-29 04:39:26
【问题描述】:

我正在尝试使用 Python 中的 CSS 文件来帮助色盲人士。我需要进入每个选择器块并更改“背景:”和“颜色:”。我尝试使用 tinycss 之类的 CSS 解析器,但它们并没有专注于获取选择器。

示例输入:

body {background:#fff; color:#ccc}

然后输出:

body {background:#000; color:#aaa}

【问题讨论】:

  • 你能告诉我input是什么吗?你想要output
  • INPUT: "body{background:#fff; color:#ccc}"...还有很多这样的块。输出:“body{background:#000; color:#aaa}”[根据给定的规格改变颜色]
  • 作为提示,请注意有些人根本看不到任何颜色。仅仅改变颜色是不够的。为了能够正确地做到这一点,您需要添加额外的提示,这样颜色就不是区分信息的唯一方法。

标签: python html css


【解决方案1】:

试试这个:

http://cthedot.de/cssutils/

parser = CSSParser()
# optionally
parser.setFetcher(fetcher)
sheet = parser.parseFile('test1.css', 'ascii')
print sheet.cssText

在 css 处理中使用非常简单。

要使用选择器,您可以使用 cssutils.css.SelectorListcssutils.css.Selector

【讨论】:

  • 它的库有一个漂亮的文档。
  • 我正在努力做到这一点,但选择器类与 CSSStylerule 类有关。我很难弄清楚它在这里的意义。现在真的很烦我:(
【解决方案2】:

我通过使用正则表达式解决了这个问题。所以我最终制作了自己的解析器。我形成了一个正则表达式来搜索CSS文件中的#XXX、#XXXXXX、rgb(X,X,X)、hsl(X,X,X)等颜色模式,维护了一个列表来保持它们所在的位置CSS 文件。然后我只是在列表指定的位置重新编写了所有颜色。这是我所做的最好的总结。如果您需要非常详细的解释,请添加评论。谢谢。

【讨论】:

    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2013-03-29
    相关资源
    最近更新 更多