常用解析HTML模块—BeautifulSoup

发布时间:2024年01月10日

常用解析HTML模块—BeautifulSoup

BeautifulSoup()对象
# 创建一个BeautifulSoup对象,获取页面正文
soup = BeautifulSoup(html文本, features='lxml')
soup = BeautifulSoup(open('file.html', 'r', encoding='utf-8'), 'lxml')
soup.head	# 获取head节点

# 获取节点名称
soup.head.name

# 获取节点属性
soup.meta.attrs	# 获取meta节点中属性

# 获取节点中属性对应的值
soup.meta.attrs['http-equiv']  # 获取meta节点中http-equiv属性对应的值
soup.link.attrs['href']    # 获取link节点中href属性对应的值
soup.div.attrs['class']    # 获取div节点中class属性对应的值
# 不写attrs, 在节点后面直接添加属性名称,也可以获取对应的值
soup.meta['http-equiv']
soup.link['href']
soup.div['class']

# 获取节点包含的文本内容
soup.title.string # 获取title节点所包含的文本内容
soup.h3.string # 获取h3节点所包含的文本内容

# 嵌套获取节点内容
soup.head.title.string  # 获取head节点title中的文本内容


# 获取子节点
soup.head.contents  # 获取head下所有字节点,数据为列表形式
soup.head.children  # 获取head下所有字节点,数据为可迭代对象形式

# 获取子孙节点
for i in soup.body.descendants:   # 循环遍历generator对象中的所有子孙节点
  print(i)       # 打印子孙节点内容
  

# 获取父节点与祖先节点
soup.title.parent		# 获取title节点的父节点内容
soup.title.parents  # 获取title节点的父节点及以上内容的generator对象

# 获取兄弟节点
soup.p.next_sibling  # 获取第一个p节点下一个兄弟节点(文本节点内容)
list(soup.p.next_sibling)	# 以列表形式获取文本节点中的所有元素
文章来源:https://blog.csdn.net/weixin_41905135/article/details/135472306
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。