BeautifulSoup和css

本文介绍了BeautifulSoup库如何帮助Python从HTML或XML文件中提取数据,包括解析器的选择、对象类型、标签操作、搜索功能以及CSS选择器的使用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Beautiful Soup

Beautiful Soup是一个用于从HTML或XML文件中提取数据的Python库。它提供了一种将复杂的HTML和XML文档转换为树形结构的方式,使得数据的提取变得更加容易。Beautiful Soup提供了许多方法和属性来浏览和搜索树形结构,以便找到所需的信息。

以下是Beautiful Soup库的一些主要特性和用法:

1.解析器: Beautiful Soup支持多种解析器,包括Python标准库中的html.parser、lxml解析器和html5lib解析器。你可以根据需要选择合适的解析器。

pythonfrom bs4 import BeautifulSoup

# 使用lxml解析器 
soup = BeautifulSoup(html, 'lxml')

2.对象的种类: Beautiful Soup将HTML或XML文档解析为一个树形结构,其中包含了标签、字符串和注释等不同的对象。你可以通过这些对象来访问和提取文档中的信息。

# 获取文档中的第一个a标签
tag = soup.a

3.标签的名称和属性: 你可以使用标签对象的名称和属性来访问标签中的信息。

# 获取标签的名称
tag_name = tag.name

# 获取标签的属性
tag_attrs = tag.attrs

4.搜索文档: Beautiful Soup提供了一系列方法,如find()find_all(),用于在文档中搜索特定的标签或文本。

# 查找第一个符合条件的a标签
result = soup.find('a')

# 查找所有符合条件的a标签
results = soup.find_all('a')

5.遍历文档树: 你可以使用标签对象的属性来遍历文档树,访问子节点、父节点和兄弟节点等。

# 遍历子节点
for child in tag.children:
    print(child)

2.CSS选择器

在爬虫中,CSS选择器通常用于定位HTML页面中的元素,以便进一步提取数据。使用第三方库如BeautifulSoup或lxml,可以通过CSS选择器来选择和解析HTML元素。

1.解析器: Beautiful Soup支持多种解析器,包括Python标准库中的html.parser、lxml解析器和html5lib解析器。你可以根据需要选择合适的解析器。

pythonfrom bs4 import BeautifulSoup

# 使用lxml解析器 
soup = BeautifulSoup(html, 'lxml')

2.通过标签名称查找:通过标签名进行查找,返回的值是一个列表。

# 查找所有的a标签
soup.select('a')

3.通过class属性查找

# 在css选择器中 'class=' 用 '.' 来代替
soup.select('.sister')

4.通过id查找

# 在css选择器中 'id=' 用 '#' 来代替
soup.select('#link')

5.查找id="link"的a标签

soup.select('a#link')

6.查找p标签下面class="sister"的标签

soup.select('p .sister')

soup.select('p > .sister') # 与上一个效果相同

7.获取文本内容

soup.select('a#link')[0].text # 建议使用,与下面的效果相同

soup.select('a#link1')[0].get_text()

8.获取链接内容

soup.select('a#link')[0]['href']

soup.select('a#link')[0].get('href') # 建议使用,与上面的效果相同
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值