Как анализировать конкретные значения из CSS-URL - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь проанализировать некоторые конкретные шестнадцатеричные значения цвета из CSS-URL (не все содержимое), но не знаю, как это выяснить с помощью Python.

URL-адрес выглядит следующим образом:

https://abcdomain.com/styles/theme.css

И его содержимое:

@charset "UTF-8";
/* CSS Document */

.bg-primary {
  background-color: #2ccfff;
  color: white;
}

.bg-success {
  background-color: #8b88ff;
  color: white;
}

.bg-info {
  background-color: #66ccff;
  color: white;
}

.bg-warning {
  background-color: #ff9900;
  color: white;
}

.bg-danger {
  background-color: #7bb31a;
  color: white;
}

.bg-orange {
  background-color: #f98e33;
  color: white;
}

Мне просто нужно проанализировать шестнадцатеричные значения "background-color" для конкретных записей, начиная с "warning" и только до "orange".

Iпытается urllib.request, но не работает точно со мной.

Буду очень признателен, если кто-нибудь сможет помочь мне получить эти значения с помощью скрипта Python.

Спасибо, Ахмед

1 Ответ

0 голосов
/ 27 февраля 2019

Я добавил дополнительный 'f' в ваш код CSS, потому что он не проверялся.

Вы можете загрузить файл с помощью запросов и проанализировать CSS с помощью cssutils .Следующий код находит все background-color экземпляры и помещает их в текст с помощью селектора CSS.

import requests
import cssutils

# Use this instead of requests if you want to read from a local file
# css = open('test.css').read()

url = 'https://abcdomain.com/styles/theme.css'
r = requests.get(url)
css = r.content

sheet = cssutils.parseString(css)

results = {}
for rule in sheet:
    if rule.type == rule.STYLE_RULE:
        for prop in rule.style:
            if prop.name == 'background-color':
                results[rule.selectorText] = prop.value

print(results)

Это печатает следующий результат:

{
  '.bg-primary': '#2ccfff',
  '.bg-success': '#8b88ff',
  '.bg-info': '#6cf',
  '.bg-warning': '#f90',
  '.bg-danger': '#7bb31a',
  '.bg-orange': '#f98e33'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...