gpt4 book ai didi

python - BeautifulSoup:从 html 获取 css 类

转载 作者:太空狗 更新时间:2023-10-29 15:42:18 27 4
gpt4 key购买 nike

有没有办法使用 BeautifulSoup 从 HTML 文件中获取 CSS 类?示例片段:

<style type="text/css">

p.c3 {text-align: justify}

p.c2 {text-align: left}

p.c1 {text-align: center}

</style>

完美的输出应该是:

cssdict = {
'p.c3': {'text-align': 'justify'},
'p.c2': {'text-align': 'left'},
'p.c1': {'text-align': 'center'}
}

虽然这样的事情会做:

L = [
('p.c3', {'text-align': 'justify'}),
('p.c2', {'text-align': 'left'}),
('p.c1', {'text-align': 'center'})
]

最佳答案

BeautifulSoup 本身根本不解析 CSS 样式声明,但您可以提取此类部分,然后使用专用的 CSS 解析器解析它们。

根据您的需要,有多种适用于 Python 的 CSS 解析器;我会选择 cssutils (需要 python 2.5 或更高版本(包括 python 3)),它是最完整的支持,并且也支持内联样式。

其他选项是css-pytinycss .

获取并解析所有样式部分(使用 cssutils 的示例):

import cssutils
sheets = []
for styletag in tree.findAll('style', type='text/css')
if not styletag.string: # probably an external sheet
continue
sheets.append(cssutils.parseStyle(styletag.string))

使用 cssutil,您可以将它们组合起来,解析导入,甚至让它获取外部样式表。

关于python - BeautifulSoup:从 html 获取 css 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11501268/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com