BeautifulSoup4(简称bs4)和正则表达式都能处理文本,筛选数据,但它们各有优势和适用场景。在网络爬虫项目中,通常会结合两个工具适用,例如用bs4解析网页结构,然后使用正则表达式提取特定的文本内容。
bs4是用于解析html和xml文档的第3方库,它本身并不直接解析文档,而是依赖于其它解析器来完成这项工作。bs4和解析器的关系可以理解为一个接口和后端服务的关系。
首先在cmd中输入pip install bs4
,或在anaconda prompt中输入conda install bs4
在cmd中输入pip show bs4
和pip show beautifulsoup4
结果如下:
Name: bs4
Version: 0.0.2
Summary: Dummy package for Beautiful Soup (beautifulsoup4)
Home-page:
Author:
Author-email: Leonard Richardson <[email protected]>
License: MIT License
Location: C:\Users\89660\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires: beautifulsoup4
Required-by:
-----------------------------------------------------------------------------------
Name: beautifulsoup4
Version: 4.12.3
Summary: Screen-scraping library
Home-page: https://www.crummy.com/software/BeautifulSoup/bs4/
Author:
Author-email: Leonard Richardson <[email protected]>
License: MIT License
Location: C:\Users\89660\AppData\Local\Programs\Python\Python312\Lib\site-packages
Requires: soupsieve
Required-by: bs4
bs4有4种类型的对象:Tag、NavigableString、BeautifulSoup、Comment
Tag是html或xml文档中的一个标签
from bs4 import BeautifulSoup
# 待解析的html文档
html = '''
<html>
<head>
<title>Page Title</title>
</head>
<body>
<div class="info" float='right'>
<p class="text">A paragraph</p>
<span>spider</span>
</div>
</body>
</html>
'''
# 调用BeautifulSoup()函数,将html文档传递给指定解析器解析,并返回一个BeautifulSoup对象
soup = BeautifulSoup(html, 'html.parser')
# ----获取<title>标签----
title_tag = soup.title
print(title_tag)
# ----获取<span>标签的名称----
span_tag_name = soup.span.name
print(span_tag_name)
# ----获取标签的属性----
# 获取div标签的所有属性
attrs = soup.div.attrs
print(attrs)
# 获取div标签的单个属性
attr_class = soup.div['class']
attr_float = soup.div.get('float')
print(attr_class, attr_float)
标签:bs4,BeautifulSoup,----,soup,html,BeautifulSoup4,解析,数据 From: https://www.cnblogs.com/qyly/p/18433717