bs4的基本使用

    • 下载
    • 基本使用
    • 标签定位
    • 标签属性定位
    • 选择器定位
    • 数据的提取

下载

pip install bs4
pip install lxml

基本使用

from bs4 import BeautifulSoup
#1.创建一个BeautifulSoup的工具对象,然后把即将被解析的页面源码数据加载到该对象中#参数1:被解析的页面源码数据#参数2:固定形式的lxml(一种解析器)
soup = BeautifulSoup(fp,'lxml')

标签定位

title_tag = soup.title
p_tag = soup.div
print(p_tag )

查找到html源码的第一个div标签
在这里插入图片描述

标签属性定位

soup.find(tagName,attrName='value')
tags = soup.find_all('a',class_='du')

`

第二个参数可以是class_ 和 id
find_all是可以获取全部
find只查找一个


#注意:find只可以定位满足要求的第一个标签
#定位到了class属性值为song的div标签
div_tag = soup.find('div',class_='song')
print(div_tag )
print("===========================")
#定位到了id的属性值为feng的a标签
a_tag = soup.find('a',id='feng')
print(a_tag )

在这里插入图片描述

选择器定位

#常用的选择器:class选择器(.class属性值)  id选择器(#id的属性值)
tags = soup.select('#feng') #定位到id的属性值为feng对应的所有标签
tags = soup.select('.du') #定位到class属性值为du对应的所有标签
#层级选择器:>表示一个层级  一个空格可以表示多个层
tags = soup.select('.tang > ul > li > a')
tags = soup.select('.tang a')
print(tags)

数据的提取

#tag.string:只可以将标签直系的文本内容取出
#tag.text:可以将标签内部所有的文本内容取出
tag = soup.find('a',id='feng')
content = tag.stringdiv_tag = soup.find('div',class_='tang')
content = div_tag.text#方式2:提取标签的属性值 tag['attrName']
img_tag = soup.find('img')
img_src = img_tag['src']
print(img_src)

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

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

相关文章

【STM32嵌入式系统设计与开发】——6矩阵按键应用(4x4)

这里写目录标题 一、任务描述二、任务实施1、SingleKey工程文件夹创建2、函数编辑(1)主函数编辑(2)LED IO初始化函数(LED_Init())(3)开发板矩阵键盘IO初始化(ExpKeyBordInit())&…

【管理咨询宝藏56】大型德企业务战略规划报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏56】大型德企业务战略规划报告 【格式】PDF 【关键词】战略规划、商业分析、管理咨询 【核心观点】 - 这是一份非常完整的知名德企在华业务战略…

7-Zip 23.00 beta以上版本的压缩包兼容性问题

7-Zip 23.00 beta加入了ARM64 filter,7-Zip 24.02 beta加入了RISCV filter,这两个filter不能在之前的版本解压,这两个filter目前只适用于ARM64/RISCV的扩展名是exe/dll的可执行文件,其中ARM64的exe/dll目前比较常见,RI…

【Linux实践室】Linux用户管理实战指南:新建与删除用户操作详解

🌈个人主页:聆风吟_ 🔥系列专栏:Linux实践室、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 🔔Linux创建用户命令2.1.1 知识点讲解2.1.2 案…

三、实现fastdfs文件上传与记录文件日志

系列文章目录 一、Spring Boot 中集成 fastdfs文件上传 二、实现fastdfs文件上传与延迟删除功能的Spring Boot项目 三、实现fastdfs文件上传与记录文件日志 文章目录 系列文章目录前言一、 设计文件日志类二、增加日志操作方法 总结: 前言 希望实现 FastDFS文件上…

基于python+vue大学生兼职管理系统flask-django-php-nodejs

本系统在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作简单,对以后的维护减少了很多麻烦。系统的顺利开发和实现,对于大学生兼职管理这一方…

量化交易入门(十三)Python开发-pandas

Pandas是Python中一个强大的数据分析和处理库。它提供了高性能、易用的数据结构和数据分析工具。Pandas的核心是DataFrame数据结构,可以让你高效地操作和分析结构化数据。下面我来详细介绍一下Pandas的主要功能和用法: 数据结构: Series: 一维标记的同构数据结构,类似于一维数…

技术创新与产业升级

在政府工作报告中,新兴技术如云计算、大数据、人工智能等被多次提及,这反映了政府高度重视新一代信息技术在推动经济社会发展中的重要作用。对于计算机行业而言,抓住这些新兴技术的发展机遇,推动技术创新和产业升级,将是未来发展的关键所在。 云计算作为一种新兴的计算模式,正…

485问题汇总

485问题汇总 485 通信波形没有负电压 问题描述:设备在没有外设的时候通信波形是正常的,即5V可以出来,在连接上设备后,设备的通信波形的-5V会随着设备的增多,电压会慢慢上升。当设备连接到24台设备后,485总…

MySQL下载及安装过程

MySQl 5.7 安装图解 目录 MySQl 5.7 安装图解 第一步 安装包 第二步 Mysql协议 第三步 安装前检查 第四步 安装 第五步 产品配置 第六步 安装完成 第一步 安装包 双击安装包文件 进行安装 第二步 Mysql协议 同意Mysql协议 , 选择 Server Only安装Mysql服务器即可 …

js处理base64字符串

编码 function encodeBase64(str: string): string {return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {return String.fromCharCode(parseInt(p1, 16))})) }解码 function decodeBase64(base64Str: string): string {return decodeURI…

数据结构(三)复杂度的深层次剖析

之前发布了数据结构(一),很多同学反响不够清晰,那今天就发一篇对复杂度专题的博客,希望对大家理解复杂度提供一些帮助。 时间复杂度 我们先来一个理解一个复杂度,二分查找的复杂度(之前写过二…

Ubuntu中安装VSCode的一个指令

问题描述 本来想去VSCode官网上下载软件包,然后双击使用Ubuntu Software安装的,但是安装老不成功。 想用命令行指令dpkg进行安装,虽然能成功,但是后续使用 code . 命令打开VSCode又报错说找不到命令。 解决方式 在命令行中使用…

蓝桥杯day8刷题日记--双子数,有奖问答

双子数 思路:双子数数位必为偶数,所以枚举的范围可以缩小为1000至9999,100000至999999,10000000至99999999 有奖问答 思路:每次枚举做到第i道题数各种得分的次数,得分为0的情况是由上一道题除了100分以外的分数的可能情况&…

牛客NC101 压缩字符串(一)【简单 模拟 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/c43a0d72d29941c1b65c857d8ac9047e 思路 直接模拟参考答案Java import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值…

备考ICA----Istio实验4---使用 Istio 进行金丝雀部署

备考ICA----Istio实验4—使用 Istio 进行金丝雀部署 上一个实验已经通过DestinationRule实现了部分金丝雀部署的功能,这个实验会更完整的模拟展示一个环境由v1慢慢过渡到v2版本的金丝雀发布. 1. 环境清理 kubectl delete gw/helloworld-gateway vs/helloworld dr/helloworld…

MATLAB入门指南:从零开始进行数学建模竞赛

第1部分:认识MATLAB 1.1 什么是MATLAB? MATLAB(Matrix Laboratory的缩写)是一个高性能的数值计算环境和第四代编程语言。由MathWorks公司开发,它提供了一个便捷的数学解决框架,主要用于算法开发、数据可视…

VS2017 remote debugger实现在线调试note

前言: 做为一个程序员, 必备的技能就是代码调试了,但是你们真的掌握了VS 的调试吗?有些时候由于线上环境和本地环境的差异, 导致本地可以运行, 但是线上确是存在异常的情况。也许可以通过Log 很快的定位到…

5.4.2、【AI技术新纪元:Spring AI解码】OpenAI Text-to-Speech (TTS) Integration

OpenAI文本转语音(TTS)集成 简介 音频API基于OpenAI的TTS(文本转语音)模型提供了一个语音端点,用户可以: 朗读一篇书面博客文章。以多种语言生成语音输出。利用流媒体实现实时音频输出。必要条件 创建OpenAI账号并获取API密钥。您可以在OpenAI注册页面上注册,并在API密…

JavaEE--小Demo--数据库建立

目录 实验准备 本次所要新建的文件 实验步骤 step1-demo.sql 1.在resources文件夹下新建demo.sql文件 2.打开此目录,并运行命令提示符 3.打开数据库mysql -uroot -p 4.创建数据库create database demo; 5.使用数据库use demo; 6.导入数据source demo.sql;…