BeautifulSoup库函数
BeautifulSoup是一个用来解析HTML和XML文档的Python库。它可以将一个HTML或XML文档转换成一个Python对象,方便我们对文档中的元素进行操作和提取所需的信息。它的函数非常丰富,以下是其中一些最常用的函数。
1. BeautifulSoup
这个函数是用来解析HTML和XML文档的,例如:
from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc, 'html.parser')
其中html_doc是HTML文档的字符串,'html.parser'是解析器的类型。
2. prettify
这个函数可以将文档转化为带缩进和格式化的字符串,方便阅读和调试,例如:
from bs4 import BeautifulSoup soup = BeautifulSoup(html_doc, 'html.parser') print(soup.prettify())
3. find, find_all
这两个函数是用来查找HTML文档中的元素的。find只返回 个匹配到的元素,find_all返回所有匹配到的元素,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
title = soup.find('title') # 返回 个title标签的内容
links = soup.find_all('a') # 返回所有a标签的内容
4. tag
tag代表了HTML文档中的一个元素,可以通过tag的属性和方法来获取和修改元素的信息,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
title = soup.find('title')
print(title) # 输出<title>...</title>
print(title.name) # 输出title
print(title.text) # 输出<title>...</title>标签中的内容
print(title.attrs) # 输出title标签的属性
title.name = 'new_title' # 修改title的标签名
5. contents
contents返回tag的所有子节点,以列表形式返回,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
body = soup.find('body')
print(body.contents) # 输出body标签的所有子节点
6. string
string返回tag的文本内容,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
title = soup.find('title')
print(title.string) # 输出<title>...</title>标签中的内容
7. parent
parent返回tag的父节点,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
a = soup.find('a')
print(a.parent.name) # 输出a标签的父元素的标签名
8. previous_sibling, next_sibling
previous_sibling返回tag的前一个兄弟节点,next_sibling返回tag的后一个兄弟节点,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
a = soup.find('a')
print(a.previous_sibling) # 输出a标签的前一个兄弟节点
print(a.next_sibling) # 输出a标签的后一个兄弟节点
9. find_parent, find_next_sibling, find_previous_sibling
这三个函数分别返回tag的父节点,下一个兄弟节点,前一个兄弟节点,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
a = soup.find('a')
print(a.find_parent('div')) # 返回a标签的父元素中 个div标签
print(a.find_next_sibling('a')) # 返回a标签的下一个a标签
print(a.find_previous_sibling('a')) # 返回a标签的前一个a标签
10. get
get返回tag的属性值,例如:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')
a = soup.find('a')
print(a.get('href')) # 输出a标签的href属性的值
这些是BeautifulSoup库中比较常用的函数,可以根据需要灵活使用。BeautifulSoup的API非常丰富,可以用来实现各种复杂的HTML和XML文档的解析和操作。
