欢迎访问宙启技术站
智能推送

BeautifulSoup库函数

发布时间:2023-06-25 23:35:45

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文档的解析和操作。