前言

BeautifulSoup也就是bs4,里面功能其实有很多,不过对于爬虫而言主要掌握一下几块就可以了

  1. 怎么找标签?
  2. 找到标签后怎么获取属性,怎么获取文本内容
  3. 如何通过找到的标签继续获取子标签

安装

pip install bs4

案例

对于找标签来说,bs4提供了很多方法,不过掌握find()find_all()一般就能满足大部分爬虫场景了
固定语法page.find("标签名", attrs={"属性": "值"})

from bs4 import BeautifulSoup
html = """
<html>
<body><ul><li><a href="link1.html">斗罗大陆</a></li><li id="abc"><a href="link1.html">斗破苍穹</a></li><li><a href="link1.html">仙逆</a></li><li><a href="link1.html">凡人修仙传</a></li></ul>
</body>
</html>
"""
# 1.初始化对象
page = BeautifulSoup(html, 'html.parser')
# 2.固定语法-查找某个元素
li = page.find("li", attrs={"id": "abc"})
# 3.每个被找到的元素,都可以继续被find()和find_all()
# 查找li标签下的a标签
a = li.find("a")
# 4.获取标签属性
a_href = a.get('href')
# 5.获取文本内容
a_text = a.text# find_all()使用
li_list = page.find_all("li")
for li in li_list:print(li.text)

总结

  1. bs4可以通过find()find_all()查找标签
  2. 查找到的标签可以继续使用find()find_all()查找下级标签
  3. 标签通过get()方法获取标签属性,通过.text获取标签文本内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96509.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96509.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/96509.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

组件库打包工具选型(npm/pnpm/yarn)的区别和技术考量

组件库打包工具选型&#xff1a;npm/pnpm/yarn的区别与技术考量 一、核心差异概述 组件库打包工具的选择&#xff0c;本质是在​​依赖管理效率​​、​​磁盘空间占用​​、​​Monorepo支持​​、​​安装速度​​及​​幽灵依赖风险​​之间做权衡。npm作为Node.js默认工具…

新型APT组织“嘈杂熊“针对哈萨克斯坦能源部门发起网络间谍活动

感染链图示 | 图片来源&#xff1a;Seqrite实验室APT研究团队 Seqrite实验室APT研究团队近日发布了一份深度分析报告&#xff0c;披露了一个自2025年4月起活跃的新型威胁组织"嘈杂熊"(Noisy Bear)。该组织主要针对哈萨克斯坦石油天然气行业&#xff0c;攻击手法结合…

OpenCV 图像直方图

目录 一、什么是图像直方图&#xff1f; 关键概念&#xff1a;BINS&#xff08;区间&#xff09; 二、直方图的核心作用 三、OpenCV 计算直方图&#xff1a;calcHist 函数详解 1. 函数语法与参数解析 2. 基础实战&#xff1a;计算灰度图直方图 代码实现 结果分析 3. 进…

Firefox Window 开发流程(四)

1 引言 在进行 Firefox 浏览器的二次开发、内核研究或自定义构建之前&#xff0c;最重要的步骤就是拉取源码并进入 Mozilla 官方提供的开发引导模式。这不仅是所有定制工作的起点&#xff0c;同时也决定了后续开发环境的稳定性与可维护性。本文将从源码获取、工具使用、引导脚…

mybatis plus 使用wrapper输出SQL

在MyBatis-Plus中&#xff0c;Wrapper对象用于构建复杂的查询条件。虽然MyBatis-Plus本身没有直接提供从Wrapper对象获取完整SQL语句的方法&#xff0c;但你可以通过一些间接的方式来获取生成的SQL片段。以下是如何使用MyBatis-Plus的Wrapper来获取SQL片段的步骤&#xff1a;‌…

第1章:操作系统和计算机网络

1. 操作系统和计算机网络组成目标概述1.1. 核心知识操作系统和网络知识很庞大&#xff0c;大多内容枯燥无味&#xff0c;主功最常用的&#xff0c;符合2/8原则。操作系统&#xff1a;内核、性能、磁盘IO、内存、CPU进程、线程、文件、中断计算机网络&#xff1a;OSI七层模型、T…

day27|前端框架学习

1、验证。前后端连接&#xff0c;authentication2、action&#xff0c;在pinia&#xff0c;管理状态&#xff0c;处理异步操作&#xff08;API/Firebase&#xff09;。methods。在vue组件&#xff0c;处理组件内部逻辑3、滑动窗口&#xff0c;能有大致思路&#xff0c;但是自己…

单片机启动文件——数据段重定位,BSS段清零

目录重定位概念的引入一、数据段重定位1.作用&#xff1a;2.目的&#xff1a;3.自己模拟代码二、BSS段清零1.作用&#xff1a;2.目的&#xff1a;3.自己模拟代码三&#xff0c;实现原理重定位概念的引入 单片机中内存段的详细介绍 在单片机中内存分为了很多不同的区域&#xf…

QT(3)

四、基本组件1. Designer设计师&#xff08;掌握&#xff09;Qt Designer 是 Qt 提供的可视化界面设计工具&#xff0c;支持通过拖拽组件快速构建 GUI 界面&#xff0c;生成的界面文件以 .ui格式保存&#xff08;基于 XML 的标签语言&#xff09;。​​核心功能​​&#xff1a…

常用注解:@PostMapping、@RequestBody、@Autowired、@Service、@Mapper

1. PostMapping作用&#xff1a;将方法绑定到 HTTP POST 请求的特定路径上用法&#xff1a;PostMapping("/login") // 绑定到 POST /login PostMapping("/employees") // 绑定到 POST /employees PostMapping("/users/{id}") …

SoC日志管理

目录 一、汽车控制器中日志的核心类型 二、日志管理的核心环节与策略 1. 日志采集:确保“全面且不冗余” 2. 日志存储:平衡“可靠性”与“存储成本” 3. 日志安全:防止“篡改与泄露” 4. 日志生命周期:符合“法规与成本” 5. 日志工具与实现 三、汽车场景的特殊约束与应对 …

横评五款开源多智能体框架,AI高手都在用哪个?下一款Manus、Cursor、Devin,谁能撑起来?

Agent 成为共识的速度非常快。但今年 Agent 的真正转折点在于&#xff1a;多智能体。 从科研自动化到任务编排&#xff0c;从自动开淘宝店到 Vibe 一切&#xff0c;从 AI 浏览器到今天的 ChatGPT Agent&#xff0c;一切都是多智能体的味道。 但要真正搭建一个多智能体&#x…

GitHub每日最火火火项目(9.10)

1. Physical-Intelligence / openpi 项目名称&#xff1a;openpi项目介绍&#xff1a;基于 Python 开发&#xff0c;聚焦于物理智能领域&#xff0c;为相关研究与应用提供支持。Python 在科学计算、人工智能等领域有着广泛且成熟的生态&#xff0c;借助其丰富的库&#xff08;如…

2025年渗透测试面试题总结-61(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 2. 提交过什么漏洞 3. 常用漏洞扫描工具 4. OWASP TOP 10 2021核心变化 5. MySQL写WebShell权限要求 6.…

高可用消息队列线程池设计与实现:从源码解析到最佳实践

前言在现代分布式系统中&#xff0c;消息队列处理是核心组件之一。今天我们将深入解析一个高性能、高可用的消息队列线程池实现——FindMessageQueue&#xff0c;并探讨如何将其优化应用于实际项目中。一、核心架构设计1.1 整体架构图┌───────────────────…

Android App瘦身方法介绍

第一章 安装包构成深度剖析1.1 APK文件结构解剖APK文件本质是一个ZIP压缩包&#xff0c;通过unzip -l app.apk命令可查看其内部结构&#xff1a;Archive: app.apkLength Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- -…

深入浅出迁移学习:从理论到实践

1. 引言&#xff1a;为什么需要迁移学习&#xff1f;在深度学习爆发的这十年里&#xff0c;我们见证了模型性能的飞速提升 ——ResNet 在图像分类上突破人类视觉极限&#xff0c;BERT 在 NLP 任务上刷新基准&#xff0c;GPT 系列更是开启了大语言模型时代。但这些亮眼成果的背后…

嵌入式人别再瞎折腾了!这8个开源项目,解决按键/队列/物联网所有痛点,小白也能抄作业

嵌入式人别再瞎折腾了&#xff01;这8个开源项目&#xff0c;解决按键/队列/物联网所有痛点&#xff0c;小白也能抄作业 你是不是也有过这样的崩溃时刻&#xff1a;想做个按键控制&#xff0c;结果长按、连击、组合键的逻辑写了200行if-else&#xff0c;最后还时不时串键&#…

C++篇(7)string类的模拟实现

一、string的成员变量string和数据结构中的顺序表类似&#xff0c;本质上可以理解成字符顺序表&#xff0c;其成员变量仍然是_str&#xff0c;_size和_capacity。但是&#xff0c;C标准库里面也有一个string&#xff0c;和我们要自己实现的string类冲突了&#xff0c;该如何解决…

【直接套模板】如何用 Web of Science 精准检索文献?

在文献检索的时候遇到一些问题&#xff0c;单独使用关键词检索出来的文章数量太多&#xff0c;如果是多加一些限定词&#xff0c;又什么都检索不到&#xff1a;比如我明明知道某篇论文已经发表&#xff0c;但在 Web of Science (WoS) 里却检索不到。这其实和检索式的写法密切相…