首页 > 其他分享 >BeautifulSoup基本使用

BeautifulSoup基本使用

时间:2023-01-08 15:55:57浏览次数:28  
标签:基本 标签 BeautifulSoup li 获取 html 使用 print select

BeautifulSoup基本使用

​ BeautifulSoup 简称 bs4,和 lxml 一样,是个 html 的解析器,主要功能也是解析和提取数据

​ 缺点:效率没有 lxml 高;优点:接口设计人性化,使用方便

​ 安装:pip install bs4,安装完成即可通过 from bs4 import BeautifulSoup导入依赖开始使用:

from bs4 import BeautifulSoup

# 加载 html 文件(如果要加载服务器响应内容,则把第一个参数换成服务器响应内容即可)
html = BeautifulSoup(open('./html/test.html', encoding='utf-8'), 'lxml')
# 获取第一个 a 标签
a_first = html.a
# 获取 a_first 属性及属性值
attrs = a_first.attrs

'''
获取第一个符合条件的数据
'''
a = html.find('a')
# 获取 title 为 a2 的 a 标签并输出
print(html.find('a', title='a2'))
# 获取 class 为 c1 的 a 标签并输出(class 是关键字,所以要加下划线作区分)
print(html.find('a', class_='c1'))

'''
获取所有符合条件的数据
'''
print(html.find_all('a'))
# 获取所有 a 标签和 span 标签并输出
print(html.find_all(['a', 'span']))
# 获取所有 li 标签取前两个并输出
print(html.find_all(['li'], limit=2))

# 获取所有 a 标签并输出
print(html.select('a'))
# 获取所有的 a 标签和 li 标签并输出
print(html.select('a,li'))
# 获取 class 为 c1 的标签并输出(.表示类选择器)
print(html.select('.c1'))
# 获取 id 为 l1的标签并输出(#表示 id 选择器,id 不能只有一个数字否则会报错)
print(html.select('#l1'))
# 获取有 id 属性的 li 标签并输出
print(html.select('li[id]'))
# 获取 id 为 l2 的 li 标签并输出
print(html.select('li[id=l2]'))
# 获取 div 标签下的 li 标签并输出
print(html.select('div li'))
# 获取 div 标签的第一级子标签 ul 并输出(> 获取的是儿子标签,不能获取到 孙子及以下标签)
print(html.select('div > ul'))

'''
获取 id 为 d1 的标签的文本内容并输出
注意: 如果标签中只有内容那么两种方式都可以获取到,如果标签中既有子标签还有内容那么只有 get_text()可以获取到文本内容
推荐使用 get_text()获取文本内容
'''
print(html.select('#d1')[0].string)
print(html.select('#d1')[0].get_text())
# 获取 id 为 d1 的标签的名称并输出
print(html.select('#d1')[0].name)

标签:基本,标签,BeautifulSoup,li,获取,html,使用,print,select
From: https://www.cnblogs.com/Y-wee/p/17034765.html

相关文章