from bs4 import BeautifulSoup
html = """
<html><body>
<div>
<ui>
<li class="item-0"><a href="link1.html">first item</a></li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li>
</ui>
</div>>
</body></html>
<b><!--Hey,buddy.want to buy a used parser?--><b>
"""
soup = BeautifulSoup(html, 'lxml')
ui = soup.ui
print(ui.contents) #返回列表
print(ui.children) #返回迭代器
for i in ui.children:
print(i)
for string in soup.strings:
print(string)
print(repr(string))
for string in soup.stripped_strings:
print(string)
print(repr(string))
contents和children的区别
返回某个标签下的直接子元素,其中也包括字符串。
区别是:contents返回的是一个列表,children返回的是一个迭代器。
string和strings、stripped_strings属性
1、string:获取某个标签下的非标签字符串。返回的是字符串。如果这个标签下有多行字符串,那么就不能获取。
2、strings:获取某个标签下的子孙非标签字符串。返回的是生成器。
3、stripped_strings:获取某个标签下的子孙非标签字符串,会去掉空白字符,返回的是生成器。