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

【愚公系列】《Python网络爬虫从入门到精通》019-使用 BeautifulSoup 的CSS选择器

标题 详情
作者简介 愚公搬代码
头衔 华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
近期荣誉 2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
博客内容 .NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
欢迎 👍点赞、✍评论、⭐收藏

文章目录

  • 🚀前言
  • 🚀一、使用 BeautifulSoup 的CSS选择器
    • 🔎1.基本语法
    • 🔎2.常用 CSS 选择器
    • 🔎3.基础示例
      • 🦋3.1 标签选择器
      • 🦋3.2 类选择器
      • 🦋3.3 ID 选择器
      • 🦋3.4 层级选择器
    • 🔎4.高级用法
      • 🦋4.1 嵌套获取
      • 🦋4.2 获取属性值
      • 🦋4.3 获取文本内容
      • 🦋4.4 属性选择器
      • 🦋4.5 组合选择器
      • 🦋4.6 切片操作
    • 🔎5.`select_one()` 方法
    • 🔎6.注意事项
    • 🔎7.完整示例代码
    • 🔎8.总结


🚀前言

在现代网页开发和数据分析中,提取和解析网页内容是每个数据工作者必须掌握的技能。而在众多的解析工具中,BeautifulSoup凭借其直观的接口和强大的功能,成为了Python开发者的热门选择。尤其是其支持CSS选择器的特性,使得我们在定位和提取网页元素时更加灵活和高效。

本期文章将重点介绍如何使用BeautifulSoup的CSS选择器来获取网页中的内容。我们将深入探讨CSS选择器的基本概念以及在BeautifulSoup中的具体应用,包括如何使用选择器查找特定元素、提取文本和属性等。通过生动的实例演示,你将能够直观地理解如何利用CSS选择器简化数据提取的流程。

🚀一、使用 BeautifulSoup 的CSS选择器

BeautifulSoup 支持通过 CSS 选择器语法提取节点内容,使用 select() 方法实现灵活查找,适用于 TagBeautifulSoup 对象。

🔎1.基本语法

调用 select() 方法,传入 CSS 选择器字符串:

soup.select("CSS选择器语法")

🔎2.常用 CSS 选择器

选择器类型 语法示例 描述
标签选择器 'p' 匹配所有 <p> 节点
类选择器 '.class-name' 匹配 class="class-name" 的节点
ID 选择器 '#id-value' 匹配 id="id-value" 的节点
层级选择器 'div p' 匹配 <div> 内嵌套的所有 <p> 节点
直接子节点 'div > p' 匹配 <div> 的直接子节点 <p>
组合选择器 '.p-1, .p-5' 匹配多个选择器的节点(逗号分隔)
属性选择器 'p[value="1"]' 匹配属性值符合条件的节点

🔎3.基础示例

示例 HTML 结构:

<body>
  <div class="test 1" id="class 1">
    <p class="p-1" value="1">零基础学Python</p>
    <p class<

相关文章:

  • deepseek本地调用
  • vscode的一些实用操作
  • CMake 编译工具
  • python基础语法
  • Spring Boot 与 Java 决策树:构建智能分类系统
  • 把程序加入开机自启动
  • 数据结构——单向循环链表、双链表、双向循环链表
  • Ubuntu 下 MySQL 安装与配置全攻略:从入门到精通
  • Zotero PDF Translate插件配置百度翻译api
  • 算法——前缀和
  • 采用 Ansys Workbench CFX 的 TwinMesh 应用
  • 分享一款AI绘画图片展示和分享的小程序
  • C++中的顺序容器(一)
  • Java零基础入门笔记:(3)程序控制
  • 单线程模拟n个线程的L函数
  • docker push镜像到阿里云
  • 网络药理学与LiP-MS:小分子药物研究的天合之作
  • 从零开始在Windows系统上搭建一个node.js后端服务项目
  • 蓝耘智算携手DeepSeek,共创AI未来
  • Java中的集合框架:List、Set和Map有什么区别?
  • 探索演艺产业新路径,2万观众走进音乐科技融创节
  • 仲裁法修订草案二审稿拟增加规定规制虚假仲裁
  • 甘肃张掖至重庆航线开通,串起西北与西南文旅“黄金走廊”
  • 杨荫凯履新浙江省委常委、组织部部长,曾任中央财办副主任
  • 夜读丨囿于厨房与爱
  • 上海车展的“老头乐”,又升级了