bs4解析数据和csv文件
\b 检测所在的位置是否是单词边界(任何可以将不同的单词进行区分的符号:空白符号,标点符号,字符串开头,字符串结尾)
^ 检测是否是字符串开头
$ 检测是否是字符串结尾
csv保存数据
-
什么是csv文件
-
读操作
- reader
from csv import reader, DictReader # a.reader # 创建根据文件对象创建对应的reader,获取文件内容 with open('files/电影.csv', encoding='utf-8', newline='') as f:r1 = reader(f)print(next(r1))print(list(r1))- Dictreader
# b.DictReader with open('files/电影.csv', encoding='utf-8', newline='') as f:r2 = DictReader(f)print(next(r2))for x in r2:print(x) -
写操作
- writer
from csv import writer, DictWriter # a. writer with open('files/student1.csv', 'w', encoding='utf-8', newline='') as f:# 1.根据文件对象创建writer对象w1 = writer(f)# 2.写入数据# 1)一次写一行w1.writerow(['姓名', '性别', '年龄'])w1.writerow(['小明', '男', 22])# 2)一次写多行w1.writerows([('小花', '女', 18),['张三', '男', 30]])- Dictwriter
# b. DictWriter with open('files/student2.csv', 'w', encoding='utf-8', newline='') as f:# 1.根据文件对象创建writer对象w2 = DictWriter(f, ['姓名', '性别', '年龄'])# 2.写入数据# 1)将字典的键作为第一行写入文件w2.writeheader()w2.writerow({'姓名': '小明', '性别': '男', '年龄': 22})w2.writerows([{'姓名': '小花', '性别': '女', '年龄': 17},{'姓名': '小红', '性别': '女', '年龄': 18},{'姓名': '张三', '性别': '男', '年龄': 30}])
bs4
- css选择器
# 元素选择器:定位特定类型的所有元素。例如,h1 定位页面上的所有 h1 元素。
h1 {/* 样式 */
}
# 类选择器:定位所有具有特定类的元素。例如,.my-class 定位所有具有类 my-class 的元素。
.my-class {/* 样式 */
}
# ID 选择器:定位具有特定 ID 的单个元素。例如,#my-id 定位具有 ID my-id 的元素。
#my-id {/* 样式 */
}
# 属性选择器:定位具有特定属性的元素。例如,[type="text"] 定位所有具有属性 type 设置为 text 的元素。
[type="text"] {/* 样式 */
}
- CSS 父子选择器用于定位特定 HTML 元素的子元素并对其应用样式。以下是一些常见的 CSS 父子选择器:
div p {/* 样式 */
}
子元素选择器:定位特定元素的直接子元素。例如,ul > li 定位所有 ul 元素的直接子元素 li 元素。
ul > li {/* 样式 */
}
相邻兄弟选择器:定位特定元素的下一个兄弟元素。例如,h1 + p 定位紧接在 h1 元素后的第一个 p 元素
h1 + p {/* 样式 */
}
通用兄弟选择器:定位特定元素之后的所有兄弟元素。例如,h1 ~ p 定位所有在 h1 元素之后的 p 元素。
h1 ~ p {/* 样式 */
}
你还可以组合父子选择器以定位特定元素的子元素。例如,div > p.my-class 定位所有 div 元素的直接子元素 p 元素,并且该元素具有类 my-class。
bs4语法
BeautifulSoup 是一个 Python 库,用于从 HTML 或 XML 文件中提取数据。它可以帮助你解析 HTML 或 XML 文件,并从中提取所需的数据
from bs4 import BeautifulSoup# 将 HTML 文件加载到 BeautifulSoup 中
with open("index.html") as fp:soup = BeautifulSoup(fp, "html.parser")# 查找所有带有 class="my-class" 的 div 元素
divs = soup.find_all("div", class_="my-class")# 打印每个 div 元素的文本内容
for div in divs:print(div.text)from bs4 import BeautifulSoup# 将 HTML 文件加载到 BeautifulSoup 中
with open("index.html") as fp:soup = BeautifulSoup(fp, "html.parser")# 使用 select 方法查找所有带有 class="my-class" 的 div 元素
divs = soup.select("div.my-class")# 打印每个 div 元素的文本内容
for div in divs:print(div.text)from bs4 import BeautifulSoup# 1. 根据网页源代码创建soup对象: BeautifulSoup(网页源代码, 'lxml')
f = open('files/data.html', encoding='utf-8')
soup = BeautifulSoup(f.read(), 'lxml')
f.close()# 2. 获取标签
# soup对象.select(css选择器) - 获取整个网页中选择器选中的所有标签,返回值是一个列表,列表中的元素是标签对象(找不到返回空列表)
# soup对象.select_one(css选择器) - 获取整个网页中选择器选中的第一个标签,返回值是标签对象(找不到返回None)
# 标签对象.select(css选择器) - 获取指定标签中css选择器选中的所有标签
# 标签对象.select_one(css选择器) - 获取指定标签中css选择器选中的第一个标签
result = soup.select('p')
print(result)# result = soup.select('.c1')
# print(result)
#
# result = soup.select_one('p')
# print(result)
#
# result = soup.select('div p')
# print(result)box1 = soup.select_one('#box1')
result = box1.select('p')
print(result)p1 = soup.select_one('span>p')
a1 = box1.select_one('a')# 3. 获取标签内容和标签属性
# 标签对象.text - 获取标签内容
# 标签对象.attrs[属性名] - 获取标签指定属性的值print(p1.text) # '我是段落5'
print(a1.text) # '我是超链接3'
print(a1.attrs['href']) # 'https://www.baidu.com'相关文章:
bs4解析数据和csv文件
\b 检测所在的位置是否是单词边界(任何可以将不同的单词进行区分的符号:空白符号,标点符号,字符串开头,字符串结尾) ^ 检测是否是字符串开头 $ 检测是否是字符串结尾 csv保存数据 什么是csv文件 读操作…...
Linux中Buffer和Cache的区别
Linux中Buffer和Cache的区别 free命令中会有一项buff/cache, 通过man free可以看到这里的关于buff/cache的介绍 buff/cache包含两部分 buffers:内核缓存区用到的内存,对应/proc/meminfo中Buffers的值 cache:内核页缓存和Slab用到的内存,对应/proc/mem…...
Docker 镜像使用
目录 1、列出镜像列表 2、获取一个新的镜像 3、查找镜像 4、拖取镜像 5、删除镜像 6、创建镜像 a.更新镜像 b.构建镜像 设置镜像标签 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 …...
Java阶段一Day10
Java阶段一Day10 文章目录Java阶段一Day10抽象类和抽象方法接口案例小练习引用类型数组教师总结回顾:精华笔记:笔记:补充:抽象类和抽象方法 关键字:abstract 只有方法的定义,没有具体的实现(连…...
触摸屏与PLC之间如何快速实现无线PPI通信?
PPI协议是西门子为S7-200专门开发的通信协议,是不开放的协议,CPU自带的两个通信口(Port0,Port1)均支持该协议,S7-200的一些通信模块也支持PPI协议。编程软件Micro/WIN与CPU进行编程通信也使用PPI协议&#…...
【华为OD机试 2023最新 】 羊、狼、农夫过河(C++ 100%)
题目描述 羊、狼、农夫都在岸边,当羊的数量小于狼的数量时,狼会攻击羊,农夫则会损失羊。农夫有一艘容量固定的船,能够承载固定数量的动物。 要求求出不损失羊情况下将全部羊和狼运到对岸需要的最小次数。 只计算农夫去对岸的次数,回程时农夫不会运送羊和狼。 备注:农…...
Java中关于try、catch、finally中的细节分析
本文讲解的是关于Java中关于try、catch、finally中一些问题 下面看一个例子(例1),来讲解java里面中try、catch、finally的处理流程 public class TryCatchFinally {SuppressWarnings("finally")public static final String test(…...
Zookeeper原理
一、概念 Zookeeper是一个开源的、分布式的,为分布式应用提供协调服务的Apache项目。封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 二、选举机制 首先是几个概念: myid:节点的唯一标识&…...
关于FPGA如何快速生成模块的例化模板(实用)
关于FPGA如何快速生成模块的例化模板(实用) 语言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado、Quartus II 关于FPGA如何快速生成模块的例化模板(实用)一、引言二、快速生成例化模块的几种方法1. IP核的例化模…...
在 Python 中将字符串转换为集合
使用 set() 类将字符串转换为集合,例如 my_set set(my_str)。 set() 类将通过拆分其字符将字符串转换为集合。 my_str one# ✅ 通过拆分字符将字符串转换为集合 my_set set(my_str) print(my_set) # 👉️ {n, o, e}# -----------------------------…...
大数据Flink进阶(十三):Flink 任务提交模式
文章目录 Flink 任务提交模式 一、会话模式(Session Mode) 二、单作业模式(Per-Job Mode) 三、应用模式(Application Mode) Flink 任务提交模式 Flink分布式计算框架可以基于多种模式部署,…...
day11—编程题
文章目录1.第一题1.1题目1.2涉及的相关知识1.3思路1.4解题2.第二题2.1题目2.2思路2.3解题1.第一题 1.1题目 描述: 将一棵无穷大满二叉树的结点按根结点一层一层地从左往右编号,根结点编号为1。现给定a,b为两个结点。设计一个算法࿰…...
CentOS下安装crontab及cron表达式解析
目录安装依赖服务启停任务操作参数简要说明1、参数说明2、cron表达式解析(1)定义(2)结构(3)字段含义(4)注意事项(5)常用表达式例子crontab示例结尾安装依赖 # vixie-cron软件包是crontab的主程序 # crontabs软件包是用来安装、卸装、或列举用来驱动crontab守护进程的表格的程序…...
python 绘制训练曲线--基于Numpy.convolve曲线平均滤波
文章目录1 训练曲线--震荡的非常厉害2 基于Numpy.convolve曲线平均滤波3 python 绘制训练曲线 平滑处理--Savitzky-Golay 滤波器曲线平滑4 python 绘制训练曲线--插值法 曲线平滑处理1 训练曲线–震荡的非常厉害 上一篇文章用python自己绘制训练曲线震荡的非常厉害(…...
状态管理插件vuex
概念: 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 作用: 如果我们使用全局总线要让所有的组件…...
arthas—阿里开源的Java诊断工具
一、arthas简述Arthas 是阿里开源的Java诊断工具。安装在系统所在服务器,有着强大的能力,是一个开发运维神器。主要功能在线热替换代码/代码增强全局视角的性能分析查看方法执行情况,帮助跟踪偶现的bug支持JDK6二、官方资料官方文档的介绍非常…...
Java学习记录
阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。希望互相进步谢谢!! 文章目录阅读前请看一下:我是一…...
OpenGL API 之 glVertexAttribPointer
glVertexAttribPointer 定义通用顶点属性数据的数组 C Specification format void glVertexAttribPointer(GLuint index,GLint size,GLenum type,GLboolean normalized,GLsizei stride,const void * pointer); Parameters nametypedescriptionindexGLuint Specifies the inde…...
蓝桥杯真题4
[蓝桥杯 2017 省 AB] 分巧克力 题目描述 儿童节那天有 KKK 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。 小明一共有 NNN 块巧克力,其中第 iii 块是 HiWiH_i \times W_iHiWi 的方格组成的长方形。 为了公平起见,小明需要从这 NN…...
day02_基本语法
今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记Java2307_沐沐霸的博客-CSDN博客 零、复习昨日 一、程序&Java介绍 二、安装JDK&配置环境变量 三、DOS命令 四、第一个程序[重点] 五、Java语言规范[重点] 六、运行机制 七、Typora工具使用 附录:…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
JS红宝书笔记 - 3.3 变量
要定义变量,可以使用var操作符,后跟变量名 ES实现变量初始化,因此可以同时定义变量并设置它的值 使用var操作符定义的变量会成为包含它的函数的局部变量。 在函数内定义变量时省略var操作符,可以创建一个全局变量 如果需要定义…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
基于 HTTP 的单向流式通信协议SSE详解
SSE(Server-Sent Events)详解 🧠 什么是 SSE? SSE(Server-Sent Events) 是 HTML5 标准中定义的一种通信机制,它允许服务器主动将事件推送给客户端(浏览器)。与传统的 H…...
python3GUI--基于PyQt5+DeepSort+YOLOv8智能人员入侵检测系统(详细图文介绍)
文章目录 一.前言二.技术介绍1.PyQt52.DeepSort3.卡尔曼滤波4.YOLOv85.SQLite36.多线程7.入侵人员检测8.ROI区域 三.核心功能1.登录注册1.登录2.注册 2.主界面1.主界面简介2.数据输入3.参数配置4.告警配置5.操作控制台6.核心内容显示区域7.检…...
