BeautifulSoup children() vs descendants()



我读了一本书,上面写着:


from urllib.request import urlopen 
from bs4 import BeautifulSoup
html = urlopen('http://www.pythonscraping.com/pages/page3.html')
bs = BeautifulSoup(html, 'html.parser')
for child in bs.find('table',{'id':'giftList'}).children: 
print(child)

这段代码打印giftList表中的产品行列表,包括列标签的初始行。如果您使用descendants()函数而不是children()函数来编写它,那么将在表中找到并打印大约24个标记,包括img标记、span标记和单个td标记。


我测试了它,当使用。children或。descendants时,我没有看到两个输出有差异。有谁能告诉我,当使用。children和。descendants时,究竟会打印什么?

区别在于深度层次。children将到达一个深度最大值。descendants将打印所有内容,每次都输出到最大深度。

如果我们从beautifulsoup文档的sisters.html中摘录

<p class="title"><b>The Dormouse's story</b></p>

for child in p.children:
print(child)
>>> <b>
for child in p.descendants:
print(child)
>>> <b> 
>>> "The Dormouse's story"

相关内容

  • 没有找到相关文章

最新更新