【基础】【Python网络爬虫】【6.数据持久化】Excel、Json、Csv 数据保存(附大量案例代码)(建议收藏)

Python网络爬虫基础

  • 数据持久化(数据保存)
    • 1. Excel
      • 创建数据表
      • 批量数据写入
      • 读取表格数据
        • 案例 - 豆瓣保存 Excel
        • 案例 - 网易新闻Excel保存
    • 2. Json
      • 数据序列化和反序列化
      • 中文指定
        • 案例 - 豆瓣保存Json
        • 案例 - Json保存
    • 3. Csv
      • 写入csv列表数据
        • 案例 - 豆瓣列表保存Csv
      • 写入csv字典数据
        • 案例 - 豆瓣字典保存csv
      • 读取csv数据
        • 案例 - 网易新闻csv

数据持久化(数据保存)

1. Excel

创建数据表

import openpyxl  # 第三方模块,  pip install openpyxl# 1.创建一个工作簿对象
work_book = openpyxl.Workbook()# 2.创建表对象
sheet1 = work_book.create_sheet('表1')
# 如果使用默认的表操作数据, 需要调用工作簿对象的active属性
sheet1 = work_book.active# 3.操作表中单元格写入数据
sheet1['A1'] = 'A1'
sheet1['B7'] = 'B7'# cell --> 单元格对象, row表示行, column表示列
sheet1.cell(row=1, column=1).value = '111111'
sheet1.cell(row=2, column=2).value = '222222'data1 = (1, 2, 3, 4, 5)
# data2 = '45678'# sheet1.append(序列数据)  整行添加数据到表格中去, 括号内部传递序列数据(列表/元祖)
# 通过数据的第一次和第二次数据提取, 会提取到一条一条的数据
sheet1.append(data1)
# sheet1.append(data2)# 4.保存
work_book.save('实例.xlsx')

批量数据写入

import openpyxlwork = openpyxl.Workbook()
sheet1 = work.activefor i in range(1, 10):for j in range(1, i + 1):print(f'{j} x {i} = {j * i}', end='\t')sheet1.cell(row=i, column=j).value = f'{j} x {i} = {j * i}'print()work.save('实例.xlsx')

读取表格数据

import openpyxlworkbook = openpyxl.load_workbook('实例.xlsx')print(workbook.sheetnames)sheet = workbook['Sheet']  # 指定表读取print(sheet.max_row)  # 最大行
print(sheet.max_column)  # 最大列# 读取第一行
for i in range(1, sheet.max_column + 1):print(sheet.cell(row=1, column=i).value)  # 单元格为空就返回None# 读取第一列
for j in range(1, sheet.max_row + 1):print(sheet.cell(row=j, column=1).value)  # 单元格为空就返回Nonefor i in range(1, sheet.max_column + 1):for j in range(1, sheet.max_row + 1):print(sheet.cell(row=i, column=j).value)
案例 - 豆瓣保存 Excel
import parsel
import requests
import openpyxl# 3.操作表中单元格写入数据
# 4.保存# 1.创建一个工作簿对象
work = openpyxl.Workbook()
# 2.创建表对象
sheet1 = work.active
# 写表头? √sheet1.append(['标题', '简介', '评分', '评价人数'])for page in range(0, 226, 25):url = f'https://movie.douban.com/top250?start={page}&filter='headers = {'Cookie': 'll="118267"; bid=VrC8tT1GWz8; __yadk_uid=iHqVKZD4ZHIVREbOrlu9k4uWFSsAdZtO; _pk_id.100001.4cf6=b39d476add4f5658.1683638062.; __utmz=30149280.1687782730.8.7.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmz=223695111.1687782730.4.4.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1687952054%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DqdlD_RZvrHI0sXUZ08wSSKbkKLAWA_R84aALUkbWwp__yA2hUL-2C_Ej15saTpe7%26wd%3D%26eqid%3Dfdfaeaeb0001b3f60000000664998548%22%5D; _pk_ses.100001.4cf6=1; ap_v=0,6.0; __utma=30149280.1169382564.1682168622.1687782730.1687952054.9; __utmb=30149280.0.10.1687952054; __utmc=30149280; __utma=223695111.1640817040.1683638062.1687782730.1687952054.5; __utmb=223695111.0.10.1687952054; __utmc=223695111; __gads=ID=744f53c3cb2ebb52-22841ef3a4e00021:T=1683638065:RT=1687952056:S=ALNI_MZhRKuML1OBDnNRafe3qd6-ndhaiQ; __gpi=UID=00000c03bafcda5c:T=1683638065:RT=1687952056:S=ALNI_MbkLLsUm467wiS6ZZ6Mn2ohKIWBZw','Host': 'movie.douban.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',}response = requests.get(url=url, headers=headers)html_data = response.text# print(html_data)"""解析数据"""# 转对象selector = parsel.Selector(html_data)# 第一次提取lis = selector.css('.grid_view>li')# 二次提取for li in lis:title = li.css('.hd>a>span:nth-child(1)::text').get()info = li.css('.bd>p:nth-child(1)::text').getall()info = '//'.join([i.strip() for i in info])score = li.css('.rating_num::text').get()follow = li.css('.star>span:nth-child(4)::text').get()print(title, info, score, follow)# 调用append方法写入每一条数据# 写表头? xsheet1.append([title, info, score, follow])print('=' * 100 + '\n')# 写表头? x
work.save('douban.xlsx')# 编码
# office软件中Excel文件使用的编码是gbk
# wps软件使用的编码是 utf-8
案例 - 网易新闻Excel保存
"""
目标站点:https://news.163.com/往下翻有 "要闻" 这个新闻类目, 找不到可以 Ctrl + F 搜索下需求:爬取网易新闻 "要闻" 类目第一页数据,将数据保存为 Excel 表格保存字段需要以下内容titlechannelname  docurl  imgurl  source  tlink
"""
import json
import reimport requests
import openpyxlurl = 'https://news.163.com/special/cm_yaowen20200213/?callback=data_callback'
response = requests.get(url=url)
json_data = response.text
# print(json_data)result = re.findall('data_callback\((.*?)\)', json_data, re.S)
# print(result)item_json = json.loads(result[0])
# print(item_json)
# print(type(item_json))work = openpyxl.Workbook()
sheet1 = work.active
sheet1.append(['title', 'channelname', 'docurl', 'imgurl', 'source', 'tlink'])for item in item_json:title = item['title']channelname = item['channelname']docurl = item['docurl']imgurl = item['imgurl']source = item['source']tlink = item['tlink']print(title, channelname, docurl, imgurl, source, tlink, sep=' | ')sheet1.append([title, channelname, docurl, imgurl, source, tlink])work.save('网易新闻.xlsx')

2. Json

数据序列化和反序列化

import json  # 内置# []  {}
data = {'name': 'ACME','shares': 100,'price': 542.23
}"""
json序列化: 将对象转化成json字符串
dumps()     序列化json字符串
"""
json_str = json.dumps(data)
print(json_str)
print(type(json_str))"""
json反序列化: 将json字符串转化成对象
dumps()     序列化json字符串
"""
json_obj = json.loads(json_str)
print(json_obj)
print(type(json_obj))

中文指定

import jsondata = {'name': '青灯','shares': 100,'price': 542.23
}
# json字符串默认使用unicode编码, 无法显示中文
# ensure_ascii=False  不适用默认编码json_str = json.dumps(data, ensure_ascii=False)
with open('data.json', mode='w', encoding='utf-8') as f:f.write(json_str)
案例 - 豆瓣保存Json
import jsonimport parsel
import requests
import openpyxldata = []  # 定义一个空列表, 用于收集每一条数据for page in range(0, 226, 25):url = f'https://movie.douban.com/top250?start={page}&filter='headers = {'Cookie': 'll="118267"; bid=VrC8tT1GWz8; __yadk_uid=iHqVKZD4ZHIVREbOrlu9k4uWFSsAdZtO; _pk_id.100001.4cf6=b39d476add4f5658.1683638062.; __utmz=30149280.1687782730.8.7.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmz=223695111.1687782730.4.4.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1687952054%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DqdlD_RZvrHI0sXUZ08wSSKbkKLAWA_R84aALUkbWwp__yA2hUL-2C_Ej15saTpe7%26wd%3D%26eqid%3Dfdfaeaeb0001b3f60000000664998548%22%5D; _pk_ses.100001.4cf6=1; ap_v=0,6.0; __utma=30149280.1169382564.1682168622.1687782730.1687952054.9; __utmb=30149280.0.10.1687952054; __utmc=30149280; __utma=223695111.1640817040.1683638062.1687782730.1687952054.5; __utmb=223695111.0.10.1687952054; __utmc=223695111; __gads=ID=744f53c3cb2ebb52-22841ef3a4e00021:T=1683638065:RT=1687952056:S=ALNI_MZhRKuML1OBDnNRafe3qd6-ndhaiQ; __gpi=UID=00000c03bafcda5c:T=1683638065:RT=1687952056:S=ALNI_MbkLLsUm467wiS6ZZ6Mn2ohKIWBZw','Host': 'movie.douban.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',}response = requests.get(url=url, headers=headers)html_data = response.text# print(html_data)"""解析数据"""# 转对象selector = parsel.Selector(html_data)# 第一次提取lis = selector.css('.grid_view>li')# 二次提取for li in lis:title = li.css('.hd>a>span:nth-child(1)::text').get()info = li.css('.bd>p:nth-child(1)::text').getall()info = '//'.join([i.strip() for i in info])score = li.css('.rating_num::text').get()follow = li.css('.star>span:nth-child(4)::text').get()# print(title, info, score, follow)d = {'title': title, 'info': info, 'score': score, 'follow': follow}data.append(d)# print('=' * 100 + '\n')print(data)# json数据的序列化
json_str = json.dumps(data, ensure_ascii=False)
with open('douban.json', mode='w', encoding='utf-8') as f:f.write(json_str)# [{}, {}, {}......]
案例 - Json保存
"""目标网址:https://www.ku6.com/video/feed?pageNo=0&pageSize=40&subjectId=76请求方式: GET要求:1、请求上述网址的数据2、把获取到的数据保存到json文件中文件命名: data.json需要在文件中看到json字符串请在下方编写代码
"""
import requestsurl = 'https://www.ku6.com/video/feed?pageNo=0&pageSize=40&subjectId=76'
response = requests.get(url=url)
json_data = response.text
print(json_data)with open('data.json', mode='w', encoding='utf-8') as f:f.write(json_data)# json序列化-

3. Csv

写入csv列表数据

"""
csv数据格式:每一行是一条数据每一行中每个数据字段有分隔符号, 默认为逗号
"""
import csv  # 内置data = [[1, 2, 3, 4],[1, 2, 3, 4],[5, 6, 7, 8],[5, 6, 7, 8]
]with open('data.csv', mode='a', encoding='utf-8', newline='') as f:# newline=''  指定数据新行是一个空字符串, 不然保存会有数据空行# csv.writer(f)  实例化一个csv数据的写入对象, 括号内部传递文件对象csv_write = csv.writer(f)for i in data:# writerow(i)  把数据一行一行<一条一条>写入, 传入(列表/元组)csv_write.writerow(i)
案例 - 豆瓣列表保存Csv
import csv
import jsonimport parsel
import requests
import openpyxl# 上下文管理器
with open('douban-list.csv', mode='a', encoding='utf-8', newline='') as f:csv_write = csv.writer(f)# csv_write.writerow(['标题', '简介', '平分', '评论人数'])f.write('标题,简介,平分,评论人数\n')for page in range(0, 226, 25):url = f'https://movie.douban.com/top250?start={page}&filter='headers = {'Cookie': 'll="118267"; bid=VrC8tT1GWz8; __yadk_uid=iHqVKZD4ZHIVREbOrlu9k4uWFSsAdZtO; _pk_id.100001.4cf6=b39d476add4f5658.1683638062.; __utmz=30149280.1687782730.8.7.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmz=223695111.1687782730.4.4.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1687952054%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DqdlD_RZvrHI0sXUZ08wSSKbkKLAWA_R84aALUkbWwp__yA2hUL-2C_Ej15saTpe7%26wd%3D%26eqid%3Dfdfaeaeb0001b3f60000000664998548%22%5D; _pk_ses.100001.4cf6=1; ap_v=0,6.0; __utma=30149280.1169382564.1682168622.1687782730.1687952054.9; __utmb=30149280.0.10.1687952054; __utmc=30149280; __utma=223695111.1640817040.1683638062.1687782730.1687952054.5; __utmb=223695111.0.10.1687952054; __utmc=223695111; __gads=ID=744f53c3cb2ebb52-22841ef3a4e00021:T=1683638065:RT=1687952056:S=ALNI_MZhRKuML1OBDnNRafe3qd6-ndhaiQ; __gpi=UID=00000c03bafcda5c:T=1683638065:RT=1687952056:S=ALNI_MbkLLsUm467wiS6ZZ6Mn2ohKIWBZw','Host': 'movie.douban.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',}response = requests.get(url=url, headers=headers)html_data = response.text# print(html_data)"""解析数据"""# 转对象selector = parsel.Selector(html_data)# 第一次提取lis = selector.css('.grid_view>li')# 二次提取for li in lis:title = li.css('.hd>a>span:nth-child(1)::text').get()info = li.css('.bd>p:nth-child(1)::text').getall()info = '//'.join([i.strip() for i in info])score = li.css('.rating_num::text').get()follow = li.css('.star>span:nth-child(4)::text').get()print(title, info, score, follow)# 循环写入数据csv_write.writerow([title, info, score, follow])print('=' * 100 + '\n')

写入csv字典数据

"""
csv数据格式:每一行是一条数据每一行中每个数据字段有分隔符号, 默认为逗号
"""import csv  # 内置list_dict = [{'first_name': 'Baked', 'last_name': 'Beans'},{'first_name': 'Lovely'},{'first_name': 'Wonderful', 'last_name': 'Spam'}]with open('data.csv', mode='a', encoding='utf-8', newline='') as f:# 创建一个字典数据写入对象, 第一个参数是文件对象, 第二个参数是字典中的键# fieldnames 指定字典的键, 不能多不能少不能错csv_write = csv.DictWriter(f, fieldnames=['first_name', 'last_name'])# 字典数据会有专门写表头的方法csv_write.writeheader()for i in list_dict:csv_write.writerow(i)
案例 - 豆瓣字典保存csv
import csv
import jsonimport parsel
import requests
import openpyxlwith open('douban-dict.csv', mode='a', encoding='utf-8', newline='') as f:csv_write = csv.DictWriter(f, fieldnames=['title', 'info', 'score', 'follow'])csv_write.writeheader()  # 写表头, 只有字典数据有写表头的方法,列表没有方法写表头for page in range(0, 226, 25):url = f'https://movie.douban.com/top250?start={page}&filter='headers = {'Cookie': 'll="118267"; bid=VrC8tT1GWz8; __yadk_uid=iHqVKZD4ZHIVREbOrlu9k4uWFSsAdZtO; _pk_id.100001.4cf6=b39d476add4f5658.1683638062.; __utmz=30149280.1687782730.8.7.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmz=223695111.1687782730.4.4.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1687952054%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DqdlD_RZvrHI0sXUZ08wSSKbkKLAWA_R84aALUkbWwp__yA2hUL-2C_Ej15saTpe7%26wd%3D%26eqid%3Dfdfaeaeb0001b3f60000000664998548%22%5D; _pk_ses.100001.4cf6=1; ap_v=0,6.0; __utma=30149280.1169382564.1682168622.1687782730.1687952054.9; __utmb=30149280.0.10.1687952054; __utmc=30149280; __utma=223695111.1640817040.1683638062.1687782730.1687952054.5; __utmb=223695111.0.10.1687952054; __utmc=223695111; __gads=ID=744f53c3cb2ebb52-22841ef3a4e00021:T=1683638065:RT=1687952056:S=ALNI_MZhRKuML1OBDnNRafe3qd6-ndhaiQ; __gpi=UID=00000c03bafcda5c:T=1683638065:RT=1687952056:S=ALNI_MbkLLsUm467wiS6ZZ6Mn2ohKIWBZw','Host': 'movie.douban.com','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',}response = requests.get(url=url, headers=headers)html_data = response.text# print(html_data)"""解析数据"""# 转对象selector = parsel.Selector(html_data)# 第一次提取lis = selector.css('.grid_view>li')# 二次提取for li in lis:title = li.css('.hd>a>span:nth-child(1)::text').get()info = li.css('.bd>p:nth-child(1)::text').getall()info = '//'.join([i.strip() for i in info])score = li.css('.rating_num::text').get()follow = li.css('.star>span:nth-child(4)::text').get()print(title, info, score, follow)d = {'title': title, 'info': info, 'score': score, 'follow': follow}csv_write.writerow(d)print('=' * 100 + '\n')

读取csv数据

import csv"""基于字符串文件类型直接读取"""
# with open('data.csv', mode='r', encoding='utf-8') as f:
#     print(f.read())"""读取返回列表"""
# with open('douban-list.csv', mode='r', encoding='utf-8') as f:
#     csv_read = csv.reader(f)
#     print(csv_read)
#     for i in csv_read:
#         print(i)"""读取返回字典对象的方法"""
with open('douban-list.csv', mode='r', encoding='utf-8') as f:csv_read = csv.DictReader(f)print(csv_read)for i in csv_read:print(i)
案例 - 网易新闻csv
"""
目标站点:https://news.163.com/
往下翻有 要闻 这个新闻类目需求:爬取网易新闻 要闻 类目第一页数据,将数据保存为csv格式保存字段需要以下内容title  channelname  docurl  imgurl  source  tlink
"""
import csv
import json
import re
import requests
import openpyxlurl = 'https://news.163.com/special/cm_yaowen20200213/?callback=data_callback'
response = requests.get(url=url)
json_data = response.textresult = re.findall('data_callback\((.*?)\)', json_data, re.S)item_json = json.loads(result[0])with open('网易新闻.csv', mode='a', encoding='utf-8', newline='') as f:write = csv.writer(f)write.writerow(['title', 'channelname', 'docurl', 'imgurl', 'source', 'tlink'])for item in item_json:title = item['title']channelname = item['channelname']docurl = item['docurl']imgurl = item['imgurl']source = item['source']tlink = item['tlink']print(title, channelname, docurl, imgurl, source, tlink, sep=' | ')write.writerow([title, channelname, docurl, imgurl, source, tlink])

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

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

相关文章

【Spring】AOP原来如此

AOP概述 什么是AOP的技术&#xff1f; 在软件业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程AOP是一种编程范式&#xff0c;隶属于软工范畴&#xff0c;指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出的,制定了一套…

Golang - 执行shell脚本,实时输出shell脚本中的日志

Golang - 执行shell脚本&#xff0c;实时输出shell脚本中的日志&#xff1a; package mainimport ("bufio""fmt""io""os/exec""strings" )func SafetyShell(execName string, arg ...string) (string, error) {ex : exec.…

摩尔线程S80对于软件的支持

摩尔线程对软件的支持 时间&#xff1a;2024年1月1日 显卡型号&#xff1a;MTT S80 主板型号&#xff1a;七彩虹 igame z590 火神 V20 CPU&#xff1a; intel core i5 10400f 内存&#xff1a; 海盗船3600 16*2 存储&#xff1a; 致态1Tb nvme 显卡的驱动是最新的。 游戏 S…

工作纪实40-使用redis的几种姿势

线上查问题看某个redis的key值&#xff0c;记录一下 1.直接使用telnet进行连接&#xff08;贼拉方便&#xff09; telnet ip port > auth pwd1.模糊查询 scan 0 MATCH abc* 2.查看所有key keys * 3.ttl key 查看key的ttl2.使用redis-cli连接(费劲吧啦&#xff0c;还需要本地…

C/C++ 函数重载

函数多态是C在C语言的基础新增的功能。默认参数能够使用不同数目的参数调用同一个函数&#xff0c;而函数多态(函数重载)让您能够使用多个同名的函数。术语“多态”指的是有多种形式&#xff0c;因此函数多态允许函数可以有多种形式。类似地&#xff0c;术语“函数重载”指的是…

基于SpringBoot的网上点餐系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的网上点餐系统,java项目…

华为云创新中心,引领浙南的数字化腾飞

编辑&#xff1a;阿冒 设计&#xff1a;沐由 县域经济是我国国民经济的重要组成部分&#xff0c;是推动经济社会全面发展的核心力量之一。在推进中国式现代化的征程中&#xff0c;县域经济扮演的角色也越来越重要。 毫无疑问&#xff0c;县域经济的良性发展&#xff0c;需要多方…

【springboot 事件发布机制源码浅析】

springboot源码分析之事件发布机制浅析 springboot 事件发布机制浅析 文章目录 springboot源码分析之事件发布机制浅析前言一、自定义事件发布1.定义事件2.监听事件3.发布事件 二、源码分析Listener监听器注册事件发布与执行 总结 前言 事件发布机制在Spring Boot框架中扮演着…

数据的确权、流通、入表与监管研究(一):数据与确权(下)

关注WX公众号&#xff1a; commindtech77&#xff0c; 获得数据资产相关白皮书下载地址 1. 回复关键字&#xff1a;数据资源入表白皮书 下载 《2023数据资源入表白皮书》 2. 回复关键字&#xff1a;光大银行 下载 光大银行-《商业银行数据资产会计核算研究报告》 3. 回复关键字…

【NLP论文】02 TF-IDF 关键词权值计算

之前写了一篇关于关键词词库构建的文章&#xff0c;没想到反响还不错&#xff0c;最近有空把接下来的两篇补完&#xff0c;也继续使用物流关键词词库举例&#xff0c;本篇文章承接关键词词库构建并以其为基础&#xff0c;将计算各关键词的 TF-IDF 权值&#xff0c;TF-IDF 权值主…

软件工程PPT 笔记摘录(2)

分析软件需求 UML 提供了用例图来分析和描述用例视角的软件需求模型 UML 提供了交互图和状态图来描述行为视角的软件需求模型 UML 提供了类图来描述和分析业务领域的概念模型 顺序图&#xff1a;强调消息传递的时间序 通信图&#xff1a;突出对象间的合作 类图&#xff0…

掌握C++11标准库(STL):理解STL的核心概念

深入探索C11标准库STL&#xff1a;新特性和优化技巧 一、前言二、容器简介三、迭代器简介四、map与unordered_map&#xff08;红黑树VS哈希表&#xff09;4.1、map和unordered_map的差别4.2、优缺点以及适用处4.3、小结 五、总结 一、前言 STL定义了强大的、基于模板的、可复用…

python设计模式:模板方法模式

更多Python学习内容&#xff1a;ipengtao.com 软件设计和编程中&#xff0c;设计模式是一种有助于解决常见问题的强大工具。其中之一是"模板方法模式"&#xff0c;它是一种行为型设计模式&#xff0c;允许你定义一个算法的骨架&#xff0c;但将一些步骤的具体实现延迟…

win11 电脑睡眠功能失效了如何修复 win11 禁止鼠标唤醒

1、win11睡眠不管用怎么办&#xff0c;win11电脑睡眠功能失效了如何修复 在win11系统中拥有许多令人激动的新功能和改进&#xff0c;有些用户在使用win11电脑时可能会遇到一个问题&#xff1a;睡眠模式不起作用。当他们尝试将计算机置于睡眠状态时&#xff0c;却发现系统无法进…

HarmonyOS应用程序包快速修复

快速修复概述 快速修复是HarmonyOS系统提供给开发者的一种技术手段&#xff0c;支持开发者以远快于应用升级的方式对应用程序包进行缺陷修复。和全量应用升级软件版本相比&#xff0c;快速修复的主要优势在小、快和用户体验好。在较短的时间内不中断正在运行的应用的情况下&am…

SpringBoot + Vue 抖音全平台项目

简介 本项目是一个短视频平台&#xff0c;拥有热度排行榜&#xff0c;热门视频&#xff0c;兴趣推送&#xff0c;关注推送&#xff0c;内容审核等功能。 源码下载 网盘 (访问密码: 8418) 登录/注册 首页 创作中心 架构设计 上传视频业务流程 视频推送流程 1.用户订阅分类后…

Day02-ES6

一.proxy代理 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head>…

2023总结

随着各大应用程序开始发送自己的年终总结&#xff0c;我的2023也只剩最后的几个小时了 &#xff0c;我的2023可以说是过的还算顺利&#xff0c;但是也算是一路坎坷&#xff0c;希望2024&#xff0c;我的本命年能够让我过的顺利点。 1&#xff0c;毕业进度 毕业进度总体来说还…

聚类:聚类的介绍及k-means算法

聚类&#xff1a;聚类的介绍及k-means算法 什么是聚类 聚类就是在输入为多个数据时&#xff0c;将“相似”的数据分为一组的操作。1 个组就叫作 1 个 “簇”。下面的示例中每个点都代表1 个数据&#xff0c;在平面上位置较为相近、被圈起来的点就代表一 类相似的数据。也就是…

如何为开源项目和社区做贡献 -- 你应该知道的十件事(一)

1. 前言 大家好&#xff0c;我叫颜国进&#xff0c;现为英特尔边缘计算创新大使、百度飞桨开发者专家。回溯至2021年12月&#xff0c;那时的我&#xff0c;身为机械专业研一新生&#xff0c;仅在C和Python编程语言上有些许基础&#xff0c;对于深度学习的殿堂还只敢在门口窥探&…