from bs4 import BeautifulSoup
# find_all or find
doc = '''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>The Dormouse's story</title>
</head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
<p class="story">
Once upon a time there were three little sister;and their names were
<a href="http://example.com/else" class="sister" id="link1">Elsie</a>
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a>
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>
and they lived at the bottom of a well
</p>
<p class="story">...</p>
</body>
</html>
'''
soup = BeautifulSoup(doc, 'lxml') # 解析html变成beautifulsoup对象
tag = soup.find("title") # 查找第一个标题标签,title一般只有一个
print(type(tag), tag) # 显示标签的类型和内容
tag = soup.find("a") # 查找第一个a标签
print(type(tag), tag) # 显示标签的类型和内容
tag = soup.find('p', attrs={'class': 'title'}) # 查找文本当中class为title的<p>元素
print(type(tag), tag) # 显示标签的类型和内容
soup = BeautifulSoup(doc, 'lxml')
print(soup.name) # 先打印文档名
tag = soup.find('b')
while tag:
print(tag.name) # 打印标签名,再进行查找父节点
tag = tag.parent
soup = BeautifulSoup(doc, 'lxml')
print(soup.name) # 先打印文档名
tag = soup.find('p')
for x in tag.children: # 获取p元素的所有直接子节点
print(x)