如何获得特定div的样式属性总数
例如:
<div class="div1" style="direction:rtl;text-align:center;clear:both;margin:.1em;margin-bottom:1em;">
这个div样式有5个样式属性。
<div class="div2" style="direction:rtl;text-align:center;clear:both;margin:.1em;">
此div样式有4个样式属性
答案 0 :(得分:2)
from bs4 import BeautifulSoup
source = """
<div class="div1" style="direction:rtl;text-align:center;clear:both;margin:.1em;margin-bottom:1em;">
<div class="div2" style="direction:rtl;text-align:center;clear:both;margin:.1em;">
"""
soup = BeautifulSoup(source, 'lxml')
for div in soup.find_all('div'):
print div.get('style')
这将为您提供如下输出:
direction:rtl;text-align:center;clear:both;margin:.1em;margin-bottom:1em;
direction:rtl;text-align:center;clear:both;margin:.1em;
现在这些是str
个对象。您可以按;
拆分它们,并根据需要进行格式化。至于找到你可以这样接近的属性数量:
for div in soup.find_all('div'):
print len(filter(None , div.get('style').split(';')))
输出:
5
4
答案 1 :(得分:1)
使用BeautifulSoup解析器。
>>> soup = BeautifulSoup('''<div class="div1" style="direction:rtl;text-align:center;clear:both;margin:.1em;margin-bottom:1em;">''', 'html')
>>> len([i for i in soup.select('.div1')[0]['style'].split(';') if i])
5