当前位置: 首页 > news >正文

Beautiful Soup的使用

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 requests

2、发送请求并获取HTML

url = 'https://XXXXXXXX.com'  # 替换为你想要爬取的网页的 URL  
response = requests.get(url)  
response.raise_for_status()  # 如果请求失败,则抛出异常  
html_content = response.text

3、解析HTML

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

4、查找标签

  • 使用 .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())

http://www.lryc.cn/news/384275.html

相关文章:

  • 633. 平方数之和(中等)
  • GIT回滚
  • BEVM基于OP-Stack发布首个以WBTC为GAS连接以太坊和比特币生态的中继链
  • 【vuejs】 $on、$once、$off、$emit 事件监听方法详解以及项目实战
  • 如何下载植物大战僵尸杂交版,最全攻略来了
  • 小公司全栈是归宿吗?
  • 对https://registry.npm.taobao.org/tyarn的请求失败,原因:证书过期
  • Redisson-Lock-加锁原理
  • deepspeed win11 安装
  • Python列表函数append()和extend()的区别
  • Spring AI 实现调用openAi 多模态大模型
  • 《妃梦千年》第十二章:层层迷雾
  • java的字节符输出流基类、File Writer类和Buffered Writer类
  • qt 简单实验 一个可以向右侧拖拽缩放的矩形
  • Google Adsense----Wordpress插入谷歌广告
  • 2-17 基于matlab的改进的遗传算法(IGA)对城市交通信号优化分析
  • VOC格式转YOLO格式,xml文件转txt文件简单通用代码
  • STL迭代器的基础应用
  • 【SQL】数据操作语言(DML) - 删除数据:精细管理数据的利刃
  • 异步复制,主库宕机后,数据可能丢失吗?
  • 如何在Spring Boot中优雅处理异常
  • 1.3.数据的表示
  • 【进阶篇-Day4:使用JAVA编写石头迷阵游戏】
  • 探索 LLamaWorker:基于LLamaSharp的.NET本地大模型服务
  • Qt开发 | Qt控件 | QTabWidget基本用法 | QListWidget应用详解 | QScrollArea应用详解
  • 2023年 AI APT可持续攻击的调查研究报告
  • Leetcode 102.目标和
  • LLM AI工具和Delphi名称的起源
  • 打破数据分析壁垒:SPSS复习必备(十一)
  • 【十六】【QT开发应用】Menu菜单,contextMenuEvent,setContextMenuPolicy,addAction