【问题标题】:Is there a way to find the most appeared/common span style in beautifulsoup python?有没有办法在beautifulsoup python中找到最常见/最常见的跨度样式?
【发布时间】:2017-04-07 08:35:37
【问题描述】:

由于我需要处理许多不同风格的 pdf,我假设主要内容将采用最常见/最常见的跨度风格。

有没有办法找到beautifulsoup python中出现次数最多的span样式?

这是我用来查找特定跨度样式的命令:

 font-family: CBCDEE+ArialMT; 
 font-size:12px':
 spans = soup.find_all('span',
                       attrs={'style': 'font-family: CBCDEE+ArialMT; font-size:12px'})`

有什么方法可以找到最常见/最常见的一种?或者基本上,有没有办法拥有跨度样式列表并计算不同样式的外观?

非常感谢。

【问题讨论】:

    标签: python html text beautifulsoup html-table


    【解决方案1】:

    您可以使用 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
    

    【讨论】:

    • 不客气。如果您对解决方案感到满意,请不要忘记单击它旁边的灰色勾号以将其标记为已接受的答案,并获得您的学者徽章。
    • 我想这样做,但我没有足够的声望来点击...T T
    • 您应该可以点击勾号,但不能点击向上箭头。
    • 完成了,马丁。非常感谢。现在我遇到了一个新的困难,即要找到所有字体大小大于最常见字体大小的跨度样式。我提出了一个新问题:stackoverflow.com/questions/40843353/… 如果您能给我一些线索,将不胜感激
    【解决方案2】:

    这可能对你有用:-

    spans = soup.find_all('span',style=True)
    for span in spans:
        print span['style']
    

    这将打印文件中所有 span 标签中使用的所有样式。

    【讨论】:

    • 非常感谢。现在我遇到了一个新的困难,即要找到所有字体大小大于最常见字体大小的跨度样式。我提出了一个新问题:stackoverflow.com/questions/40843353/… 如果您能给我一些线索,将不胜感激
    • @VeronicaWenqianCheng,检查我已经回答了这个问题。
    猜你喜欢
    • 2017-04-12
    • 1970-01-01
    • 2018-05-23
    • 2020-01-28
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-18
    相关资源
    最近更新 更多