由于我需要处理许多不同风格的pdf,我假设主要内容将在最常见/常见的范围内。
有没有办法在beautifulsoup python中找到最出现的跨度风格?
这是我用来查找特定范围样式的命令:
font-family: CBCDEE+ArialMT;
font-size:12px':
spans = soup.find_all('span',
attrs={'style': 'font-family: CBCDEE+ArialMT; font-size:12px'})`
有哪些方法可以找到最常见的/常见的?或者基本上,有没有办法获得跨度样式列表并计算不同样式的外观?
非常感谢。
答案 0 :(得分:0)
这可能适合您: -
spans = soup.find_all('span',style=True)
for span in spans:
print span['style']
这将打印文件中所有span标记中使用的所有样式。
答案 1 :(得分:0)
您可以使用Python Counter()
计算所有不同的样式,然后显示most_common()
元素,如下所示:
from bs4 import BeautifulSoup
from collections import Counter
html = """
<span style="font-family: CBCDEE+ArialMT; font-size:12px">1</span>
<span style="font-family: CBCDEE+ArialMT; font-size:14px">2</span>
<span style="font-family: CBCDEE+ArialMT; font-size:14px">3</span>
<span style="font-family: CBCDEE+Arial; font-size:12px">4</span>
<span style="font-family: CBCDEE+ArialMT; font-size:12px">5</span>"""
soup = BeautifulSoup(html, "html.parser")
style_counts = Counter()
for span in soup.find_all('span', style=True):
style_counts[span['style']] += 1
print style_counts.most_common(1)[0][0]
对于此示例,它将显示:
font-family: CBCDEE+ArialMT; font-size:12px