Как получить ссылки на изображения в css файле?
Есть файл main.css:
header {
color: black;
font-size: 32px;
background-image: url('images/bg.jpeg');
}
.infoBlock {
color: white;
display: flex;
background-image: url('images/info.jpeg');
}
.contactBlock {
display: flex;
color: white;
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg")
}
Из этого файла нужно вытянуть все ссылки на избражения в стиле background-image игнорируя векторные изображения как в селекторе .contactBlock
Мой вопрос: Есть ли удобные библиотеки для парсинга css файлов по типу BeautifulSoup?
Ответы (1 шт):
Автор решения: SkyGuy
→ Ссылка
Можешь использовать модуль cssutils
import cssutils
from pprint import pprint
css = u'''
body, html { color: blue }
h1, h2 { font-size: 1.5em; color: red}
h3, h4, h5 { font-size: small; }
'''
dct = {}
sheet = cssutils.parseString(css)
for rule in sheet:
selector = rule.selectorText
styles = rule.style.cssText
dct[selector] = styles
pprint(dct)
Output:
{
u'body, html': u'color: blue',
u'h1, h2': u'font-size: 1.5em;\ncolor: red',
u'h3, h4, h5': u'font-size: small'
}
Соответственно можешь в переменную css запихнуть содержимое файла через следующую функцию:
def get_css(filename):
with open(filename, encoding="utf8"):
return filename.read()
css = get_css("main.css")