Python css를 파싱하거나 생성하는 cssutils 라이브러리 알아보기
오늘은 Python으로 HTML css를 파싱하거나 만들어주는 라이브러리인 cssutils를 적용해보려 합니다.
cssutils 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
pip3 install virtualenv
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
pip3 install --upgrade pip
pip의 업그레이드가 존재하는지 확인하고 진행합니다.
pip install cssutils
pip로 cssutils를 설치합니다.
예제
import cssutils
cssutils를 가져옵니다.
sheet = cssutils.parseString('body { color: red }')
print("cssText1: ", sheet.cssText)
css를 문자열로 파싱할 수 있습니다.
sheet = cssutils.parseString('body { color: red }')
cssutils.ser.prefs.indent = 4 * ' '
cssutils.ser.prefs.lineNumbers = True
print("cssText2: ", sheet.cssText)
라인 수, 탭 간격을 설정할 수 있습니다.
from cssutils import css
cssutils에서 css를 가져옵니다.
sheet = css.CSSStyleSheet()
sheet.cssText = u'@import url(example.css) tv;'
print(sheet.cssText)
css 스타일시트를 위해 CSSStyleSheet 객체를 사용할 수 있습니다.
style = css.CSSStyleDeclaration()
style['color'] = 'red'
style_rule = css.CSSStyleRule(selectorText=u'body', style=style)
sheet.add(style_rule)
print(sheet.cssText)
CSSStyleDeclaration 객체로 단일 CSS 선언 블록을 나타내서 현재 블록에 설정된 스타일 속성을 직접 설정할 수 있습니다.
print(sheet.cssText)
sheet.cssRules[0].media.appendMedium('print')
print(sheet.cssText)
newMedium를 추가할 수 있습니다.
sheet.cssRules[1].selectorList.appendSelector('a')
print(sheet.cssText)
Selector를 추가할 수 있습니다.
Written on May 23, 2019