【问题标题】:Scrape url of css file imports in css file and then remove them, in Python在 css 文件中抓取 css 文件导入的 url,然后在 Python 中删除它们
【发布时间】:2018-04-12 22:33:25
【问题描述】:

我需要在一个 css 文件中获取所有 css 导入(url)。例子是:

@import url("/pub-assets/css/index/tac-holidaysale.css");
@import url("/pub-assets/css/index/tc1200-fonts.css");
@import url("/pub-assets/css/index/ad-banner.css");

所以我需要一个列表,其中包括:

/pub-assets/css/index/tac-holidaysale.css
/pub-assets/css/index/tc1200-fonts.css
/pub-assets/css/index/ad-banner.css

我需要这个来缩小 Css。获取所有网址后,我需要删除所有这些导入。如何仅在 Python 中执行此操作?

【问题讨论】:

标签: python css url import minify


【解决方案1】:

这是做一些假设,但你可以在引号上拆分,然后只获取引号之间的项目。

所以你的代码看起来像这样:

rules = []
with open("test.css") as f:
    for line in f:
        if line.startswith("@import"):
            url = line.split('"')[1] # split on quote mark and get middle item
            rules.append(url)

这假定该行以@import 开头,并且字符串中只有一对引号。让我知道这些假设是否影响深远。

要删除URL,可以做line.replace(url,''),或者添加line.split('"')的第0和第2项

【讨论】:

  • 感谢您的回答。这很好,但我需要相对 url 而不是整个导入代码
  • 对不起,我的错。我刚刚写了一个不使用正则表达式的新解决方案。
  • 非常感谢。你让我开心!
  • @Arya:这很好,但问题是对免费工作的明确要求,以及语言要求和紧急乞讨。值得注意的是,社区中的一些成员宁愿不回答这类问题,这样 Stack Overflow 就不会获得免费劳动力分类机构的声誉(或者,至少比现在的声誉更高)有)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多