漂亮的汤有没有办法计算html页面中的标签数量

新手上路,请多包涵

我正在查看在 python 中创建一个字典,其中键是 html 标签名称,值是标签出现的次数。有没有办法用漂亮的汤或其他东西来做到这一点?

原文由 gizgok 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 425
2 个回答

使用 BeautifulSoup,您可以通过省略搜索条件来搜索所有标签:

 # print all tags
for tag in soup.findAll():
    print tag.name # TODO: add/update dict

如果您只对出现的次数感兴趣,BeautifulSoup 可能有点矫枉过正,在这种情况下您可以使用 HTMLParser 代替:

 from HTMLParser import HTMLParser

class print_tags(HTMLParser):
    def handle_starttag(self, tag, attrs):
        print tag # TODO: add/update dict

parser = print_tags()
parser.feed(html)

这将产生相同的输出。

要创建 { 'tag' : count } 的字典,您可以使用 collections.defaultdict

 from collections import defaultdict

occurrences = defaultdict(int)
# ...
occurrences[tag_name] += 1

原文由 Anonymous Coward 发布,翻译遵循 CC BY-SA 3.0 许可协议

BeautifulSoup 非常适合 HTML 解析,您当然可以将它用于此目的。这将非常简单:

 from bs4 import BeautifulSoup as BS

def num_apperances_of_tag(tag_name, html):
    soup = BS(html)
    return len(soup.find_all(tag_name))

原文由 jdotjdot 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题