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

【爬虫】request库

文章目录

  • 发送请求
  • 响应对象
    • 响应数据的方式
    • 中文乱码问题
    • 响应对象的其他属性或方法
  • 发送带参数的请求
    • headers和查询参数

Requests——发送http请求,获取响应数据

首先,请确保:

  • 已安装 Requests
  • Requests 是最新的

让我们从一些简单的示例开始。

发送请求

使用 Requests 发出请求非常简单。

需求:通过requests想百度首页发送请求,获取该页面的源码

运行下面的代码,观察打印出的结果

#首先导入Requests模块:
import requests
# 目标url
url = 'https://www.baidu.com'
# 向目标url发送get请求
response = requests.get(url)
# 打印响应内容
print(response.text)

其他HTTP类型呢:PUT,DELETE,HEAD?这些都是同样的:

response = requests.post(url,data = {'key' : 'value'})
response = requests.put(url,data = {'key' : 'value'})
response = requests.delete(url)
response = requests.head(url)
response = requests.options(url)

这一切都很好,但这也只是 Requests 可以做到的开始 !

响应对象

响应数据的方式

当你使用 requests 库发送一个请求(例如 requests.get()requests.post() 等)时,服务器会返回一个响应。这个响应包含了很多信息,而 requests.textresponse.content 就是从这个响应中获取数据的常见的两种不同方式。

requests.text

它是从响应中提取的数据经过解码后的结果,是一个字符串(Unicode 字符串)。这个解码过程通常是根据服务器在 Content-Type 头部信息中提供的字符编码进行的,如果服务器没有明确给出字符编码,requests 库会尝试使用 chardet 库来猜测编码方式,然后将响应数据从字节(bytes)解码为字符串。例如,如果服务器返回的是一个 HTML 页面,你可以直接使用 requests.text 来获取这个页面的文本内容,以便后续使用 BeautifulSoup 或其他文本处理工具进行解析。

response.content

它是服务器返回的原始字节数据,也就是最原始的响应数据,没有经过任何解码处理。这对于处理二进制数据非常有用,例如当你从服务器下载一个文件(如图像文件、音频文件、视频文件、压缩文件等)时,你需要使用 response.content 来获取这些文件的原始字节,以便将其保存到本地或进行其他二进制处理操作。

requests.text和response.content的区别

对比维度requests.textresponse.content
数据类型解码后的 Unicode 字符串原始字节数据(bytes 类型)
编码处理根据 HTTP 头部字符编码信息(或 chardet 模块猜测)自动解码不进行编码解码,直接返回原始字节
适用场景处理文本数据,如解析 HTML、JSON、XML 等处理二进制数据,如图片、视频、音频、压缩文件等
获取方式直接获取解码后的文本内容获取原始字节内容,需手动解码(若为文本)
应用示例使用 BeautifulSoup 解析 HTML 网页:soup = BeautifulSoup(response.text, ‘html.parser’)保存图片到本地:with open(‘image.png’, ‘wb’) as f: f.write(response.content)

【代码示例】

import requests# 发送请求
response = requests.get('https://example.com')# 使用 requests.text 获取解码后的文本数据
text_data = response.text
print("Text Data:", text_data[:100])  # 打印前 100 个字符的文本内容# 使用 response.content 获取原始字节数据
content_data = response.content
print("Content Data:", content_data[:100])  # 打印前 100 个字节的数据'''运行结果:
Text Data: <!doctype html>
<html>
<head><title>Example Domain</title><meta charset="utf-8" /><m
Content Data: b'<!doctype html>\n<html>\n<head>\n    <title>Example Domain</title>\n\n    <meta charset="utf-8" />\n    <m'
'''

中文乱码问题

当你使用 requests 库发送请求并接收到服务器的响应时,response.content 是以字节(bytes)形式存储的数据。如果该数据包含中文字符,而你直接使用 response.content 查看或处理这些数据,可能会出现中文乱码的情况。这是因为你需要将字节数据按照正确的编码方式解码为字符串,这样才能正确显示中文。以下是解决中文乱码问题的具体步骤:

一、检查服务器响应的编码方式

首先,你可以查看服务器响应的 Content-Type 头部信息,其中可能包含了编码信息。你可以通过 response.encoding 或者 response.headers.get('Content-Type') 来获取这些信息。例如:

import requestsresponse = requests.get('https://example.com')
print("服务器响应的编码方式(通过 encoding 属性):", response.encoding)
print("服务器响应的编码方式(通过 headers):", response.headers.get('Content-Type'))'''运行结果:
服务器响应的编码方式(通过 encoding 属性): ISO-8859-1
服务器响应的编码方式(通过 headers): text/html
'''

通过上述代码,你可以获取服务器声明的编码方式。然而,有时候服务器可能没有正确声明编码,或者声明的编码与实际的编码不符,这时就需要手动指定编码进行解码

二、使用 decode 方法进行解码

你可以使用 response.content.decode() 方法对字节数据进行解码。如果你知道服务器使用的正确编码方式,就可以直接将其作为参数传递给 decode 方法。例如,如果服务器使用的是 utf-8 编码:

import requestsresponse = requests.get('https://example.com')
decoded_content = response.content.decode('utf-8')
print(decoded_content)

在这个例子中,response.content.decode('utf-8') 会将字节数据按照 utf-8 编码方式解码为字符串,这样就能正确显示中文。

通过对response.content进行decode,来解决中文乱码

  • response.content.decode()默认UTF-8
  • response.content.decode("GBK")
  • 常见的编码字符集
    • UTF-8
    • gbk
    • gb2312
    • ascii
    • iso-8859-1

三、自动猜测编码并解码(使用 chardet)

如果不确定服务器的编码方式,可以使用 chardet 库来猜测编码。chardet 可以分析字节数据并尝试确定最可能的编码。以下是一个使用 chardet 的示例:

import requests
import chardetresponse = requests.get('https://example.com')
# 使用 chardet 检测编码
detected_encoding = chardet.detect(response.content)['encoding']
print("检测到的编码:", detected_encoding)
# 按照检测到的编码进行解码
decoded_content = response.content.decode(detected_encoding)
print(decoded_content)

在这个例子中:

  1. 首先,使用 chardet.detect(response.content)response.content 进行编码检测。
  2. chardet.detect(response.content)['encoding'] 会返回检测到的编码。
  3. 最后,将检测到的编码作为参数传递给 decode 方法对字节数据进行解码。

【完整代码示例】

import requests
import chardetdef get_decoded_content(url):response = requests.get(url)try:# 尝试使用服务器声明的编码进行解码decoded_content = response.content.decode(response.encoding)except UnicodeDecodeError:# 若解码失败,使用 chardet 猜测编码detected_encoding = chardet.detect(response.content)['encoding']decoded_content = response.content.decode(detected_encoding)return decoded_content# 示例使用
url = 'https://example.com'
decoded_content = get_decoded_content(url)
print(decoded_content)

响应对象的其他属性或方法

除了text和status_code以外,response响应对象还有其他常用的属性或方法

属性或方法说明
response.url响应的url,有时候响应的url和请求的url并不一致
response.status_code响应状态码
response.request.headers响应对应的请求头
response.headers响应头
response.request._cookies响应对应请求的cookie,返回cookieJar类型
response.cookies响应的cookie(经过了set-cookie动作,返回cookieJar类型)
response.json()自动将json字符串类型的响应内容转换为python对象(dict/list)

【代码示例】

import requests
# response = requests.get('https://example.com')
# print(response.status_code)
# print(response.headers)  # 可以查看响应的头部信息
# print(response.headers.get('Content-Type')) #  可以获取具体的 Content-Type 信息,对于后续处理不同类型的响应内容很有用
# print(response.encoding) # 提供编码信息,有时可能不准确
# print(response.cookies) # 可以查看服务器返回的 Cookie 信息response = requests.get('https://api.example.com/data')
data = response.json()
print(data) # 将响应内容解析为 JSON 格式

发送带参数的请求

我们在使用百度的时候经常发现url地址中会有一个?,那么该问号后边的就是请求参数,又叫做查询字符串

headers和查询参数

如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params 参数。

(一)在url携带参数

直接对含有参数的url发起请求

url = 'http://www.baidu.com/s?wd=长城'
response = requests.get(url, headers = headers)

(二)通过params携带参数字典

  1. 构建请求参数字典
  2. 向接口发送请求的时候带上参数字典,参数字典设置给params

【代码示例】

import requestsurl = 'http://www.baidu.com/s?'
# 添加请求头,进一步伪装浏览器
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
# 构建参数字典
kw = {'wd':'长城'
}
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)# 查看响应内容,response.text 返回的是Unicode格式的数据
print (response.text)# 查看响应内容,response.content返回的字节流数据
print (respones.content)# 查看完整url地址
print (response.url)# 查看响应头部字符编码
print (response.encoding)# 查看响应码
print (response.status_code)

相关文章:

【爬虫】request库

文章目录 发送请求响应对象响应数据的方式中文乱码问题响应对象的其他属性或方法 发送带参数的请求headers和查询参数 Requests——发送http请求&#xff0c;获取响应数据 首先&#xff0c;请确保&#xff1a; 已安装 RequestsRequests 是最新的 让我们从一些简单的示例开始…...

Docker内存芭蕾:优雅调整容器内存的极限艺术

title: “&#x1f4be; Docker内存芭蕾&#xff1a;优雅调整容器内存的极限艺术” author: “Cjs” date: “2025-2-23” emoji: “&#x1fa70;&#x1f4a5;&#x1f4ca;” 当你的容器变成内存吸血鬼时… &#x1f680; 完美内存编排示范 &#x1f4dc; 智能内存管家脚本…...

云手机如何进行经纬度修改

云手机如何进行经纬度修改 云手机修改经纬度的方法因不同服务商和操作方式有所差异&#xff0c;以下是综合多个来源的常用方法及注意事项&#xff1a; 通过ADB命令注入GPS数据&#xff08;适用于技术用户&#xff09; 1.连接云手机 使用ADB工具连接云手机服务器&#xff0c;…...

力扣-贪心-53 最大子数组和

思路 先把每一个值都加到当前集合中&#xff0c;记录当前的和&#xff0c;直到当前记录和小于0了&#xff0c;再重置改记录&#xff0c;再次尝试累加 代码 class Solution { public:int maxSubArray(vector<int>& nums) {int res INT32_MIN;int curSum 0;for(in…...

【c语言】函数_作业详解

前言&#xff1a; 对应鹏哥专升本c语言&#xff0c;51集 内容&#xff1a; 找出10个数值中的最大值&#xff0c; #include <stdio.h> //求10个整数中的最大值 int main() {//准备10个整数 //int arr[10] {1,2,3,4,13,6,7,8,9,-2};//用于循环10次int i 0;//也可以自…...

超详细:数据库的基本架构

MySQL基础架构 下面这个图是我给出的一个MySQL基础架构图&#xff0c;可以清楚的了解到SQL语句在MySQL的各个模块进行执行过程。 然后MySQL可以分为两个部分&#xff0c;一个是server层&#xff0c;另一个是存储引擎。 server层 Server层涵盖了MySQL的大多数核心服务功能&am…...

PCL 边界体积层次结构(Boundary Volume Hierarchy, BVH)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 边界体积层次结构(Boundary Volume Hierarchy, BVH) 是一种高效的空间数据结构,广泛应用于计算机图形学、计算机视觉、机器人学、物理仿真等领域。它的核心思想是通过将空间递归地划分为层次化的包围体(通常是轴…...

【微服务】深入解析spring aop原理

目录 一、前言 二、AOP 概述 2.1 什么是AOP 2.2 AOP中的一些概念 2.2.1 aop通知类型 2.3 AOP实现原理 2.3.1 aop中的代理实现 2.4 静态代理与动态代理 2.4.1 静态代理实现 三、 jdk动态代理与cglib代理 3.1 jdk动态代理 3.1.1 jdk动态代理模拟实现 3.2 CGLIB 代理…...

Python爬虫系统搭建教程,从0开始搭建爬虫系统(附安装包)

文章目录 前言一、Python环境搭建1.Python安装2.选择Python开发环境3. 安装必要库 二、基础爬虫构建1. 发送请求获取网页2. 解析网页提取数据 三、使用 Scrapy 框架搭建系统1. 创建 Scrapy 项目2. 生成爬虫3. 编写爬虫代码4. 运行爬虫 四、应对反爬虫机制1. 常见反爬虫手段2. 解…...

linux -对文件描述符的操作dup、fcntl有五种

dup #include<unistd.h> int dup(int oldfd);作用&#xff1a;复制一个新的文件描述符fd 3, int fd1 dup(fd);f指向的是a.txt,fd1指向的也是a.txt从空闲的文件描述符表中找一个最小的作为新的拷贝的文件描述符返回&#xff1a;成功返回新的文件描述符&#xff0c;失败…...

人工智能(AI)的不同维度分类

人工智能(AI)的分类 对机器学习进行分类的方式多种多样&#xff0c;可以根据算法的特性、学习方式、任务类型等不同维度进行分类这些分类都不是互斥的&#xff1a; 1、按数据模态不同:图像&#xff0c;文本&#xff0c;语音&#xff0c;多态等 2、按目标函数不同:判别式模型…...

MySQL的Union和OR查询

这里写目录标题 **1. 创建表和索引****2. 编写 UNION 查询****3. 使用 EXPLAIN 分析查询****4. 分析 EXPLAIN 结果****可能的结果分析**&#xff1a; **5. 验证索引合并****总结****1. UNION 操作的分析****为什么使用临时表&#xff1f;** 2. OR 条件的分析为什么使用索引合并…...

金融业的AI革命——量化交易与智能风控(五)

‌第五章 AI驱动的智能投顾与普惠金融服务体系‌ ‌一、智能投顾技术架构的范式革新‌ ‌1. 技术演进三阶段‌ ‌阶段‌‌核心技术‌‌典型应用‌‌局限性‌规则引擎(2015-2020)决策树、专家系统银行理财风险评估自动化(覆盖率98%)无法应对黑天鹅事件机器学习(2020-2023)…...

机动车授权签字人考试题库及答案

一、单选题 11、 资质认定,是指(  )以上质量技术监督部门依据有关法律法规和标准、技术规范的规定,对检验检测机构的基本条件和技术能力是否符合法定要求实施的评价许可。资质认定包括检验检测机构计量认证。 A、县级 B、市级 C、地区 D、省级 答案&#xff1…...

Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因

Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因 一、背景二、查看topic日志信息三、结论四、解决方法一、背景 源头数据库在很短的时间内刷了大量的数据,部分数据在hdfs丢失了 理论上debezium数据采集不会丢失,就需要排查数据链路某个节点是否有数据丢失。 数据…...

鸿蒙学习-

鸿蒙数据传值 //* 传值 //* State /**State创建一个响应式的数据&#xff0c;但不是所有的更改都会引起刷新&#xff0c;只有被框架观察到的修改才会被刷新UI* 1. 基本数据类型如 number string boolean等值的变化修改* 2. Object类型&#xff0c;只会观察到第一层的数据变化或…...

【多模态处理篇五】【DeepSeek文档解析:PDF/Word智能处理引擎】

你知道吗?全球每天产生的PDF文档超过10亿份,但90%的上班族还在用复制粘贴的笨办法处理文档!DeepSeek文档解析引擎就像给你的电脑装上了"文档翻译官",能把PDF/Word里的文字、表格、公式甚至排版样式都变成AI能理解的"语言"。举个真实场景:法务小姐姐用…...

WPS中如何批量上下居中对齐word表格中的所有文字

大家好&#xff0c;我是小鱼。 在日常制作Word表格时&#xff0c;经常需要对表格中的内容进行排版。经常会把文字设置成左对齐、居中对齐或者是右对齐&#xff0c;这些对齐方式都比较好设置&#xff0c;有时我们制作的表格需要把文字批量上下居中对齐&#xff0c;那么怎么操作…...

【LLM】增强大模型推理能力的四种范式

note 增强大模型推理能力的四种范式&#xff1a;推理时间扩展、纯强化学习(RL)、SFTRL、蒸馏(distillation) 。其实这几种方法本质就是SFTRL&#xff1a; 低成本做事就直接推理时间扩展稍微肯付出成本就蒸馏SFT&#xff0c;顺便搞点高质量COT SFT数据高级点就先用GRPO等RL学习…...

2025年华为手机解锁BL的方法

注&#xff1a;本文是我用老机型测试的&#xff0c;新机型可能不适用 背景 华为官方已经在2018年关闭了申请BL解锁码的通道&#xff0c;所以华为手机已经无法通过官方获取解锁码。最近翻出了一部家里的老手机华为畅玩5X&#xff0c;想着能不能刷个系统玩玩&#xff0c;但是卡…...

鸿蒙状态管理概述 v2

状态管理v2 概述状态管理之v2ObservedV2 和 Trace状态管理V1版本对嵌套类对象属性变化直接观测的局限性ObservedV2 和 Trace 使用场景 Local状态管理V1版本State装饰器的局限性 Param状态管理V1版本接受外部传入的装饰器的局限性 OnceEventComputedComputed 使用场景 TypePersi…...

阿里云上的网站配置HTTPS

1. 获取SSL证书 创建证书 下载证书 下载 上传 .key .pem 文件 到 阿里云服务器 /etc/nginx/ssl nginx.conf 配置 server { listen 443 ssl; server_name yuming; ssl_certificate /etc/nginx/ssl/*.pem; ssl_certificate_key /etc/nginx/ssl/*.key;...

【部署优化篇十四】【十万字全景拆解:GitHub Actions自动化流水线设计圣经(DeepSeek工业级实践大公开)】

一、从手工作坊到智能工厂:CI/CD的革命之路 想象一下,你所在的公司每天要手工组装1000台手机,每个环节都靠老师傅肉眼检查——这就是没有CI/CD的软件开发现状。GitHub Actions的出现,就像给软件交付装上了特斯拉的超级工厂流水线。 DeepSeek的CI/CD演进史就是一部血泪史:…...

Golang | 每日一练 (3)

&#x1f4a2;欢迎来到张胤尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 Golang | 每日一练 (3)题目参考答案map 实现原理hmapb…...

Java+SpringBoot+Vue+数据可视化的综合健身管理平台(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 在当今社会&#xff0c;随着人们生活水平的不断提高和健康意识的日益增强&#xff0c;健…...

深入解析Textual库:打造现代化的终端用户界面(TUI)

深入解析Textual库&#xff1a;打造现代化的终端用户界面&#xff08;TUI&#xff09; 在终端应用程序的世界里&#xff0c;过去的交互方式通常是简单的命令行输入和文本输出。然而&#xff0c;随着开发者对更高可用性和更友好界面的追求&#xff0c;现代终端用户界面&#xf…...

基于ffmpeg+openGL ES实现的视频编辑工具-opengl相关逻辑(五)

在我们的项目中,OpenGL ES 扮演着至关重要的角色,其主要功能是获取图像数据,经过一系列修饰后将处理结果展示到屏幕上,以此实现各种丰富多样的视觉效果。为了让大家更好地理解后续知识,本文将详细介绍 OpenGL 相关代码。需要注意的是,当前方案将对 OpenGL 的所有操作都集…...

加班限制了进步

今天周六&#xff0c;大家都在加班吗&#xff1f; 做个统计。 最近面试了很多硬件工程师&#xff0c;还没有找到如意的。 这些面试者都很会解决问题&#xff0c;但是不会闭环问题。 EMC不过&#xff0c;加个磁环就过了。为什么加磁环就过了&#xff0c;底层原理不清楚。 改…...

容器化部署tomcat

容器化部署tomcat 需求在docker容器中部署tomcat,并通过外部机器访问tomcat部署的项目 容器化部署要先装好docker容器(docker安装配置) 实现步骤&#xff1a; 拉取tomcat docker pull tomcat用于列出本地Docker主机上存储的所有镜像 docker images在root目录里面创建tomc…...

【HeadFirst系列之HeadFirst设计模式】第7天之命令模式:封装请求,轻松实现解耦!

命令模式&#xff1a;封装请求&#xff0c;轻松实现解耦&#xff01; 大家好&#xff01;今天我们来聊聊设计模式中的命令模式&#xff08;Command Pattern&#xff09;。如果你曾经需要将请求封装成对象&#xff0c;或者希望实现请求的撤销、重做等功能&#xff0c;那么命令模…...

尚硅谷爬虫note009

一、jsonpath 1.安装 pip install jsonpath 2.使用 只能解析本地文件 .json文件 {"store": {"book": [{"category": "reference","author": "Nigel Rees","title": "Sayings of the Century&qu…...

C语言(11)------------->while循环

一、if与while的区别 在C语言中&#xff0c;有三大结构&#xff0c;分别是顺序、选择和循环。在前面的博客文章中&#xff0c;我们解释了if语句的用法&#xff0c;可以参考&#xff1a;C语言&#xff08;7&#xff09;------------&#xff1e;if语句-CSDN博客 从文章中&…...

Unity 全局屏幕点击特效

思路&#xff1a; 1、生成一个点击特效实例&#xff0c;每点击屏幕&#xff0c;就调整特效实例的位置并控制特效的显隐状态即可。 2、需要注意要保证在编辑器开发时或手机上运行时都要显示点击效果。 方案一 &#xff08;推荐&#xff09; using UnityEngine; using UnityEn…...

【数据结构初阶第十二节】设计循环队列

云边有个稻草人-CSDN博客 必须有为成功付出代价的决心&#xff0c;然后想办法付出这个代价。 还有最后一道关于队列的习题&#xff0c;这题有点难&#xff0c;准备好迎接挑战吧&#xff01; 目录 1.【题目】 2.实现循环队列推荐用数组&#xff0c;Why? 3.Q1&#xff1a;如…...

【小白学HTML5】盒模型(一文讲清margin、padding)_第三讲

根据第一讲的内容&#xff0c;我们知道margin是外边距、padding是内边距&#xff0c;那么内外边距该怎么设置呢&#xff1f; 1、margin&#xff1a;外边距 第一种情况&#xff1a;比如设置外边距为上10px、右20px、下30px、左40px 外边距可以分别设置为&#xff1a;margin-t…...

PLC数据采集网关(三格电子)

产品概述 PLC转Modbus网关型号SG-PLC-Private&#xff08;PLC私有协议网关&#xff09;&#xff0c;是三格电子推出的工业级网关&#xff08;以下简称网关&#xff09;&#xff0c;主要用于在不需要对PLC编程的情况下将PLC数据映射到Modbus TCP(映射的方式符合PLC工程师使用习惯…...

基于图扑 HT 可视化实现智慧地下采矿可视化

在前端开发领域&#xff0c;不断涌现的新技术为各行业带来了创新变革的可能。今天&#xff0c;让我们聚焦于图扑软件自研的 HT for Web 产品&#xff0c;看看它如何在前端 2D、3D 渲染方面发力&#xff0c;为智慧地下采矿可视化打造令人惊叹的解决方案&#xff0c;为开发者开启…...

【网络】高级IO(2)

或者在某些情况下&#xff0c;它可能是&#xff1a; typedef unsigned int nfds_t; 前言 由于select函数有下面几个特别明显的缺点&#xff0c;就推演出了改进版本——poll函数 比如select监视的fd是有上限的&#xff0c;我的云服务器内核版本下最大上限是1024个fd&#xf…...

论文解读 | AAAI'25 Cobra:多模态扩展的大型语言模型,以实现高效推理

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 点击 阅读原文 观看作者讲解回放&#xff01; 个人信息 作者&#xff1a;赵晗&#xff0c;浙江大学-西湖大学联合培养博士生 内容简介 近年来&#xff0c;在各个领域应用多模态大语言模型&#xff08;MLLMs&…...

区块链共识机制详解

区块链共识机制详解 &#x1f91d; 1. 什么是共识机制&#xff1f; 共识机制是区块链网络中&#xff0c;所有节点就某个状态&#xff08;如交易的有效性&#xff09;达成一致的规则和过程。它解决了在去中心化网络中如何确保数据一致性的问题。 2. 主流共识机制 2.1 工作量证…...

Unity游戏制作中的C#基础(1)界面操作基础

1.脚本有关注意事项 &#xff08;1&#xff09;.进入项目之后&#xff0c;一般创建一个文件夹Scripts用来存放c#脚本&#xff1b; &#xff08;2&#xff09;.在Scripts中创建脚本&#xff0c;双击脚本&#xff0c;进入VS编辑器&#xff0c;有如下结构&#xff1a; start&#…...

python学习笔记,python处理 Excel、Word、PPT 以及邮件自动化办公

文章目录 前言一、环境搭建1. 下载 Python2. 安装 Python 二、处理 Excel 文件&#xff08;openpyxl库&#xff09;三、 处理 Word 文件&#xff08;python-docx库&#xff09;四、 处理 PPT 文件&#xff08;python-pptx库&#xff09;五、 自动发送邮件&#xff08;smtplib和…...

欢乐力扣:同构字符串

文章目录 1、题目描述2、 代码 1、题目描述 同构字符串。给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。  每个出现的字符都应当映射到另一个字符&#xff0c;同时不改变字符…...

近10年气象分析(深度学习)

这是一个气象数据分析程序&#xff0c;主要用于分析和可视化气象数据。以下是该文件的主要功能&#xff1a; 1. 数据加载 在线数据&#xff1a;尝试从 GitHub 加载气象数据。 示例数据&#xff1a;如果无法加载在线数据&#xff0c;程序会自动生成示例数据。 2. 数据分析 …...

win11系统无法打开软件_组策略无法打开_gpedit.msc不生效_为了对电脑进行保护,已经阻止此应用---Windows工作笔记057

碰到这个问题挺麻烦的,要用的软件打不开了. 其实解决方法就是去组策略中修改一个策略就可以了,但是: 先来说: 而且,使用cmd输入的gpedit.msc也打不开了. 这个怎么解决? @echo off pushd "%~dp0"dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPo…...

【JAVA】封装多线程实现

系列文章目录 java知识点 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、封装的目标&#x1f449;二、常见的封装方式及原理&#x1f449;壁纸分享&#x1f449;总结 &#x1f449;前言 在 Java 中&#xff0c;封装多线程的原理主要围绕着将多线程相关的操作和逻辑…...

长短期记忆网络:从理论到创新应用的深度剖析

一、引言 1.1 研究背景 深度学习在人工智能领域的发展可谓突飞猛进&#xff0c;而长短期记忆网络&#xff08;LSTM&#xff09;在其中占据着至关重要的地位。随着数据量的不断增长和对时序数据处理需求的增加&#xff0c;传统的神经网络在处理长序列数据时面临着梯度消失和梯…...

过程监督(Process Supervision)融入到 GRPO (Group Relative Policy Optimization)

下面演示如何把“过程监督&#xff08;Process Supervision&#xff09;”的思想融入到 GRPO (Group Relative Policy Optimization) 中&#xff0c;从而对每个输出的中间步骤逐一打分、计算相对优势。本文的示例代码与 grpo_train.py &#xff08;来源见下文&#xff09;类似&…...

ES6中Object.defineProperty 的详细用法和使用场景以及例子

ES6 Object.defineProperty() 用法总结 Object.defineProperty() 是 ES5 引入的一个方法&#xff0c;ES6 继续强化了该方法的使用&#xff0c;它允许我们为对象的属性定义或修改 属性描述符。它能够控制对象属性的行为&#xff0c;如读写权限、可枚举性和可配置性。 1. Objec…...

【服务器与本地互传文件】远端服务器的Linux系统 和 本地Windows系统 互传文件

rz 命令&#xff1a;本地上传到远端 rz 命令&#xff1a;用于从本地主机上传文件到远程服务器 rz 是一个用于在 Linux 系统中通过 串口 或 SSH 上传文件的命令&#xff0c;它实际上是 lrzsz 工具包中的一个命令。rz 命令可以调用一个图形化的上传窗口&#xff0c;方便用户从本…...