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

bs4解析数据和csv文件

\b 检测所在的位置是否是单词边界(任何可以将不同的单词进行区分的符号:空白符号,标点符号,字符串开头,字符串结尾)

^ 检测是否是字符串开头

$ 检测是否是字符串结尾

csv保存数据

  1. 什么是csv文件

  2. 读操作

    1. 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))
    
    1. 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)
    
  3. 写操作

    1. 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]])
    1. 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

  1. 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"] {/* 样式 */
}
  1. 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为两个结点。设计一个算法&#xff0…...

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自己绘制训练曲线震荡的非常厉害&#xff08…...

状态管理插件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_iHi​Wi​ 的方格组成的长方形。 为了公平起见,小明需要从这 NN…...

day02_基本语法

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记Java2307_沐沐霸的博客-CSDN博客 零、复习昨日 一、程序&Java介绍 二、安装JDK&配置环境变量 三、DOS命令 四、第一个程序[重点] 五、Java语言规范[重点] 六、运行机制 七、Typora工具使用 附录:…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【HTTP三个基础问题】

面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...