我在写这个问题的答案时考虑了以下.
I thought about the following while writing an answer to this question.
假设我有一个像这样深度嵌套的 xml 文件(但嵌套更多且更长):
Suppose I have a deeply nested xml file like this (but much more nested and much longer):
<section name="1">
<subsection name"foo">
<subsubsection name="bar">
<deeper name="hey">
<much_deeper name"yo">
<li>Some content</li>
</much_deeper>
</deeper>
</subsubsection>
</subsection>
</section>
<section name="2">
... and so forth
</section>
len(soup.find_all("section")) 的问题在于,在执行 find_all("section") 时,BS 一直在深入搜索一个标签我知道不会包含任何其他 section 标记.
The problem with len(soup.find_all("section")) is that while doing find_all("section"), BS keeps searching deep into a tag that I know won't contain any other section tag.
那么,两个问题:
BeautifulSoup 不能只提供它找到的标签的计数/数量.
BeautifulSoup cannot give you just a count/number of tags it found.
不过,您可以改进的是:不要让 BeautifulSoup 通过传递 recursive=False 来搜索其他部分中的部分:
What you, though, can improve is: don't let BeautifulSoup go searching sections inside other sections by passing recursive=False:
len(soup.find_all("section", recursive=False))
除了改进之外,lxml 会更快地完成这项工作:
Aside from that improvement, lxml would do the job faster:
tree.xpath('count(//section)')
这篇关于BeautifulSoup 计数标签而不深入解析它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
使用 python 解析非常大的 xml 文件时出现问题Troubles while parsing with python very large xml file(使用 python 解析非常大的 xml 文件时出现问题)
使用 Python 2 在 XML 中按属性查找所有节点Find all nodes by attribute in XML using Python 2(使用 Python 2 在 XML 中按属性查找所有节点)
Python - 如何解析 xml 响应并将元素值存储在变量中Python - How to parse xml response and store a elements value in a variable?(Python - 如何解析 xml 响应并将元素值存储在变量中?)
如何在 Python 中获取 XML 标记值How to get XML tag value in Python(如何在 Python 中获取 XML 标记值)
如何使用 ElementTree 正确解析 utf-8 xml?How to correctly parse utf-8 xml with ElementTree?(如何使用 ElementTree 正确解析 utf-8 xml?)
将 XML 从 URL 解析为 python 对象Parse XML from URL into python object(将 XML 从 URL 解析为 python 对象)