1、Beautiful Soup简介
Beautiful Soup是一个Python的一个HTML或XML的解析库,我们用它可以方便地从网页中提取数据。
Beautiful Soup 提供一些简单的、Python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以无须很多代码就可以写出一个完整的应用程序。 Beautifùl Soup 自动将输人文档转换为 Unicode 编码,将输出文档转换为 utf-8 编码。你不需要考虑编码方式,除非文档没有指定具体的编码方式,这时你仅仅需要说明一下原始编码方式就可以了。 Beautiful Soup 已成为和 Ixml、html5lib 一样出色的 Python 解释器,为用户灵活提供不同的解析策略或强劲的速度。
2、基本使用
1、导入库
from bs4 import BeautifulSoup  
import requests2、发送请求并获取HTML
url = 'https://XXXXXXXX.com'  # 替换为你想要爬取的网页的 URL  
response = requests.get(url)  
response.raise_for_status()  # 如果请求失败,则抛出异常  
html_content = response.text3、解析HTML
soup = BeautifulSoup(html_content, 'lxml')  # 使用 lxml 解析器解析 HTML4、查找标签
-  使用 .find()或.find_all()方法查找标签。
-  使用 CSS 选择器或标签名作为参数。 
# 使用标签名查找  
p_tags = soup.find_all('p')  # 使用 CSS 选择器查找  
div_with_class = soup.find('div', class_='some-class')  # 注意:class 属性在 Python 中是关键字,所以使用 class_ 代替5、获得标签内容
-  使用 .string属性获取单个标签的文本内容(仅当标签内只有一个文本节点时有效)。
-  使用 .get_text()方法获取标签及其所有子标签的文本内容。
# 获取单个标签的文本内容  
content = div_with_class.string  # 获取标签及其所有子标签的文本内容  
all_text = p_tags[0].get_text()6、获得标签属性
-  使用 ['attribute_name']或.get('attribute_name')获取标签的属性值。
# 获取链接的 href 属性  
href = soup.find('a')['href']  # 注意:如果找不到标签或标签没有该属性,则会抛出 KeyError 异常  # 更安全的方式是使用 .get() 方法,它会在找不到属性时返回 None  
href = soup.find('a').get('href')7、遍历标签
-  使用 for 循环遍历 .find_all()返回的标签列表。
for p in soup.find_all('p'):  print(p.get_text())