python爬虫初识
一、什么互联网
互联网(Internet)是全球范围内最大的计算机网络,它将数以百万计的私人、公共、学术、商业和政府网络通过一系列标准通信协议(如TCP/IP)连接起来形成的一个庞大的国际网络。
互联网的起源可以追溯到1969年,当时美国国防部高级研究计划局(ARPA)创建了ARPANET,用于军事和科研目的。经过几十年的发展,互联网已经渗透到社会的各个角落,成为现代社会信息交流、商务活动、教育、娱乐等不可或缺的基础设施。
互联网与传统行业结合,催生了新的经济社会发展形态——“互联网+”。这一概念最早由易观国际于2012年提出,旨在通过互联网平台和信息通信技术,将互联网与传统行业深度融合,从而创造新的发展生态。这种模式不仅优化了资源配置,提升了生产力,还推动了社会经济的全面进步。
此外,互联网受欢迎的原因还在于其低成本和高效率。具体来说,它能够降低交易成本,例如淘宝网通过缩短中间环节,使得商品价格更低。同时,互联网节约了时间,使人们可以在任何时间获取新闻、进行交流,而不再受传统媒体的时间限制。
总的来说,互联网作为当代最重要的技术和产业之一,已经深刻改变了人们的生活、工作和学习方式。从提供信息服务到推动经济发展,互联网在现代社会中扮演着不可替代的角色。未来,随着技术的不断进步和应用的深入,互联网将继续引领社会的创新和发展。
二.HTTP基本原理
我们会详细了解 HTTP 的基本原理,了解在浏览器中敲入 URL 到获取网页内容之间发生了什么。了解了这些内容,有助于我们进一步了解爬虫的基本原理。
什么是URI和URL和URN
现在看一下这三者的关系
URL统一资源定位符,而URN统一资源名称。
**URI(Uniform Resource Identifier,统一资源标识符)**是一个通用的概念,用于唯一标识一个资源。它包括了URL(Uniform Resource Locator,统一资源定位符)和URN(Uniform Resource Name,统一资源名称)。URL不仅标识资源,还提供了资源的位置信息,如协议类型(如HTTPS)、服务器地址、端口号以及资源的路径等。URN仅提供资源的名称,而不指定其位置,比如一本书的ISBN号就是一个URN,但它本身并不提供如何找到这本书的信息。
什么是超文本
超文本是一种通过超链接将不同文本信息组织在一起的网状文本,它允许用户在一个文档中点击链接以跳转到另一个文档或特定部分。这种非线性的信息组织方式极大地促进了信息的共享和传播,是现代万维网的核心技术之一。
超文本的概念最早由泰德·尼尔森在1960年代提出,它是一种能够链接不同文本的技术,用于信息的组织和检索。在万维网中,超文本通过HTML实现,使用标签定义超链接,并通过href属性指定链接的目标地址。超文本不仅包含文本,还可以涵盖图片、视频、音频等多媒体内容,这些内容也可以成为可点击的链接
HTTP 和 HTTPS
HTTP 的全称是 Hyper Text Transfer Protocol,中文名叫做超文本传输协议,HTTP 协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证传送高效而准确地传送超文本文档。HTTP 由万维网协会(World Wide Web Consortium)和 Internet 工作小组 IETF(Internet Engineering Task Force)共同合作制定的规范,目前广泛使用的是 HTTP 1.1 版本。
HTTPS 的全称是 Hyper Text Transfer Protocol over Secure Socket Layer,是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,简称为 HTTPS。
HTTPS 的工作原理
这张图片展示了一个基于HTTPS协议的客户端与服务器之间的通信流程。整个流程分为客户端发起请求、服务器响应和客户端处理响应三个主要部分。
客户端发起请求:
客户端通过浏览器访问https://www.runoob.com网站,向服务器发送一个HTTPS请求。
请求中包含公钥和私钥,用于加密和解密后续的通信内容。
服务器响应:
服务器接收到客户端的请求后,首先验证公钥和私钥是否匹配。
如果验证成功,服务器会生成一个新的随机密钥(key),并将其与公钥一起返回给客户端。
同时,服务器还会使用私钥对随机密钥进行加密,并将加密后的密钥发送给客户端。
客户端处理响应:
客户端收到服务器返回的公钥和加密后的随机密钥后,会使用私钥对其进行解密,以获取原始的随机密钥。
然后,客户端使用这个随机密钥对后续的通信内容进行加密,并将加密后的内容发送给服务器。
最后,服务器会使用之前生成的随机密钥对接收的内容进行解密,以获得原始信息。
HTTP的工作原理
HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。
下面是TCP的具体流程
第一次握手:客户端尝试连接服务器,向服务器发送 syn 包(同步序列编号Synchronize Sequence Numbers),syn=j,客户端进入 SYN_SEND 状态等待服务器确认
第二次握手:服务器接收客户端syn包并确认(ack=j+1),同时向客户端发送一个 SYN包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态
第三次握手:第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
HTTP 请求过程
我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容。实际上,这个过程是浏览器向网站所在的服务器发送了一个请求,网站服务器接收到这个请求后进行处理和解析,然后返回对应的响应,接着传回给浏览器。响应里包含了页面的源代码等内容,浏览器再对其进行解析,便将网页呈现了出来,模型如图所示
请求
接下来,我们开始了解,http请求
HTTP请求由以下三个主要部分组成:
-
请求行:
-
方法:最常用的HTTP方法包括GET、POST、PUT、DELETE等,这些方法定义了客户端与服务器之间的交互类型。例如,GET用于请求资源,POST用于提交数据。
-
URL:指定请求的资源路径,即希望访问的网页或资源在服务器上的位置。
-
协议版本:表明客户端使用的HTTP版本,以确保服务器能够正确理解客户端的请求。
-
-
请求头:
按键值对形式提供额外的信息,以帮助服务器理解请求的具体需求和能力。- Host:指定请求的目的地域名,帮助服务器区分来自不同域名的请求。
- User-Agent:描述发出请求的用户代理(通常为浏览器)的信息,包括操作系统、浏览器名称及版本等。
- Accept:告知服务器客户端能够处理的内容类型,如文本、图片等。
- Accept-Language:声明客户端优先接受的语言。
- Authorization:包含用于身份验证的凭证,如Token或基本认证信息。
- Cookie:携带网站为了识别用户而存储在客户端的小型文本文件。
- Content-Type:当请求体包含实体时,指明媒体类型,如application/json、multipart/form-data等。
- Content-Length:如果请求体存在,表示请求体的长度。
-
请求体(可选):
实际的数据内容,通常在POST、PUT等请求中使用,向服务器发送所需的数据,如表单提交的数据。
总的来说,HTTP请求是一个结构化的数据包,它通过请求行、请求头和请求体的组合来传达客户端的需求和数据到服务器,使得服务器能够根据提供的信息做出适当的响应。
响应
HTTP响应是服务器对客户端请求的回复,它包括以下几个主要部分:
-
状态行:
- 协议版本:显示服务器使用的HTTP版本。
- 状态码:表示请求的处理结果,五位数代码,如200表示成功,404表示未找到,500表示服务器内部错误。
- 状态消息:为状态码提供文本描述,例如“OK”对于200状态码。
-
响应头:
- Date:响应生成的日期和时间。
- Server:服务器软件的名称和版本。
- Content-Type:响应主体的MIME类型,如text/html。
- Content-Length:响应主体的长度,以字节为单位。
- Connection:管理连接的方式,如关闭连接或保持连接。
- Set-Cookie:服务器发送给客户端的Cookies,用于追踪会话或保存用户偏好设置。
- Cache-Control:控制如何缓存响应的指令。
- Expires:响应过期的日期和时间。
- Location:重定向的URL(在状态码为3xx时常用)。
-
响应体(可选):
实际的数据内容,如HTML页面、图片或其他媒体。
综上,HTTP响应通过这些组成部分向客户端传达了请求处理的结果和必要的数据,客户端根据这些信息可以进行进一步的处理,如展示页面或处理错误。
三.Web网页基础
网页的组成
结构(HTML):用于描述页面的结构;
表现(CSS):用于控制页面中元素的样式;
行为(JavaScript):用于响应用户操作。
HTML是超文本标记语言(HyperText Markup Language)是一种用于创建网页的标准标记语言。HTML负责网页三个组成部分中的结构,HTML使用标签的形式来标识网页中的不同组成部分。所谓的超文本指的是超链接,使用超链接可以让我们从一个页面跳转到另一个页面。
CSS 是指层叠样式表 (Cascading Style Sheets),样式定义如何显示HTML 元素,用于控制web页面的外观。CSS负责网页三个组成部分中的表现,样式通常保存在外部的 .css 文件中。我们只需要编辑一个简单的 CSS 文档就可以改变所有页面的布局和外观。
JavaScript 是脚本语言(简称"JS"),是一种轻量级的编程语言,用于控制网页的行为。JavaScript负责网页三个组成部分中的行为,可插入 HTML 页面的编程代码,JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
网页的结构
我们首先用例子来感受一下 HTML 的基本结构。新建一个文本文件,名称可以自取,后缀为 html,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>This is a Demo</title>
</head>
<body>
<div id="container">
<div class="wrapper">
<h2 class="title">Hello World</h2>
<p class="text">Hello, this is a paragraph.</p>
</div>
</div>
</body>
</html>
这是一个基本的HTML网页结构,包括以下几个部分:
<!DOCTYPE html>
:声明文档类型为HTML5。<html>
:HTML文档的根元素。<head>
:包含元信息,如字符集、标题等。<meta charset="UTF-8">
:定义文档使用的字符编码为UTF-8。<title>
:设置网页标题,显示在浏览器标签页上。<body>
:包含网页的所有可见内容。<div id="container">
:一个带有id属性的div元素,用于包裹其他元素。<div class="wrapper">
:一个带有class属性的div元素,用于包裹其他元素。<h2 class="title">Hello World</h2>
:一个二级标题元素,内容为"Hello World"。<p class="text">Hello, this is a paragraph.</p>
:一个段落元素,内容为"Hello, this is a paragraph."。
这个网页结构包含了一个简单的标题和一段文本,它们被包裹在一个名为"wrapper"的div元素中,而这个div元素又被另一个名为"container"的div元素包裹。这样的结构有助于组织和管理页面内容。
四.爬虫基本原理
我们先看一下基本的示例图
这张图展示了一个简化的网络爬虫的工作原理,按照自上而下的逻辑逐步解释如下:
-
初始URL:这是网络爬虫开始工作的起点。爬虫从这个URL开始,访问该网页并下载其内容。
-
网页抓取/下载:爬虫下载初始页面的内容,通常是一个HTML文件。
-
解析网页,提取有用信息和链接:下载内容后,爬虫会解析HTML代码,从中提取出有价值的信息(如文本、图片等)以及网页中的超链接。
-
将提取的链接放入待抓取URL队列:提取出的链接会被添加到待抓取URL队列中,等待进一步处理。
-
待抓取URL队列:这是一个URL列表,爬虫按照顺序(通常是先进先出)从队列中取出URL进行访问和下载。
-
已抓取URL队列:为了避免重复抓取相同的网页,爬虫会将已经访问过的URL放入已抓取URL队列中。
-
循环抓取:爬虫继续从待抓取URL队列中取出URL,重复上述的抓取、解析和提取链接的过程。
-
满足停止条件,结束抓取:爬虫会持续这个过程,直到满足某个停止条件,比如待抓取URL队列为空,或者达到了预设的抓取深度或数量。
-
保存数据:在抓取过程中提取的有用信息会被保存起来,这可能是存储到数据库、文件或其他数据存储系统中。
整个流程是一个循环的过程,爬虫不断地从一个链接跳到另一个链接,不断扩展其抓取范围,直到完成预定的抓取任务。在这个过程中,爬虫可能会遇到各种问题,如链接失效、网页结构变化等,需要相应的逻辑来处理这些异常情况。
五 会话和Cookies
Cookie和会话是两种不同的技术,它们在Web开发中用于跟踪用户状态和保持用户信息。下面是它们之间的主要区别:
- 存储位置:Cookie存储在客户端(浏览器),而会话数据存储在服务器端。
- 生命周期:Cookie可以设置过期时间,过期后会被删除;会话通常在用户关闭浏览器或长时间不活动后自动失效。
- 安全性:由于Cookie存储在客户端,因此可能存在安全风险,如跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。相比之下,会话数据存储在服务器端,相对更安全。
- 容量:Cookie的大小受限于浏览器的限制,通常不超过4KB。而会话数据可以在服务器端存储更多的信息。
- 用途:Cookie主要用于记住用户的偏好设置、登录状态等,而会话主要用于跟踪用户在网站上的活动,如购物车内容、页面访问历史等。
- 管理方式:Cookie可以通过JavaScript代码进行操作,而会话数据通常由服务器端的编程语言(如PHP、Python、Java等)进行管理。
六 代理基本原理
基本原理
我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如 403 Forbidden,这时候打开网页一看,可能会看到 “您的 IP 访问频率太高” 这样的提示。出现这种现象的原因是网站采取了一些反爬虫措施。比如,服务器会检测某个 IP 在单位时间内的请求次数,如果超过了这个阈值,就会直接拒绝服务,返回一些错误信息,这种情况可以称为封 IP。
既然服务器检测的是某个 IP 单位时间的请求次数,那么借助某种方式来伪装我们的 IP,让服务器识别不出是由我们本机发起的请求,不就可以成功防止封 IP 了吗?
一种有效的方式就是使用代理,后面会详细说明代理的用法。在这之前,需要先了解下代理的基本原理,它是怎样实现 IP 伪装的呢?
这张图展示了代理服务器在客户端和目标服务器之间进行中介的基本工作流程。
-
客户端请求:客户端(如您的浏览器)向代理服务器发送一个请求,这个请求可能是获取一个网页、一个文件或任何其他网络资源。
-
接收并处理请求:代理服务器接收到客户端的请求后,可能会进行一些处理工作。这包括检查请求的有效性、添加或删除请求头信息、进行用户身份验证等。
-
转发请求:一旦代理服务器处理完请求(可能还会修改请求),它会将请求转发给目标服务器。目标服务器是请求资源的原始位置。
-
目标服务器响应:目标服务器收到请求后,会生成一个响应,比如返回请求的网页内容。
-
接收并处理响应:代理服务器接收到目标服务器的响应后,同样可能会对响应进行一些处理。这可能包括缓存响应内容、过滤广告或恶意软件、压缩数据等。
-
返回响应给客户端:最后,代理服务器将处理后的响应返回给客户端,客户端再将响应内容呈现给用户。
在整个过程中,代理服务器可以提供额外的功能,如安全性增强(通过防火墙规则)、匿名性(隐藏客户端IP地址)、速度提升(通过缓存)等。此外,代理可以是透明的(客户端不知道其存在)或非透明的(客户端需要配置以使用代理)。
代理实际上指的就是代理服务器,英文叫作 proxy server,它的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。在我们正常请求一个网站时,是发送了请求给 Web 服务器,Web 服务器把响应传回给我们。如果设置了代理服务器,实际上就是在本机和服务器之间搭建了一个桥,此时本机不是直接向 Web 服务器发起请求,而是向代理服务器发出请求,请求会发送给代理服务器,然后由代理服务器再发送给 Web 服务器,接着由代理服务器再把 Web 服务器返回的响应转发给本机。这样我们同样可以正常访问网页,但这个过程中 Web 服务器识别出的真实 IP 就不再是我们本机的 IP 了,就成功实现了 IP 伪装,这就是代理的基本原理。
代理的作用
那么,代理有什么作用呢?我们可以简单列举如下。
突破自身 IP 访问限制,访问一些平时不能访问的站点。
访问一些单位或团体内部资源,如使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类 FTP 下载上传,以及各类资料查询共享等服务。
提高访问速度,通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
隐藏真实 IP,上网者也可以通过这种方法隐藏自己的 IP,免受攻击,对于爬虫来说,我们用代理就是为了隐藏自身 IP,防止自身的 IP 被封锁。
爬虫代理
对于爬虫来说,由于爬虫爬取速度过快,在爬取过程中可能遇到同一个 IP 访问过于频繁的问题,此时网站就会让我们输入验证码登录或者直接封锁 IP,这样会给爬取带来极大的不便。
使用代理隐藏真实的 IP,让服务器误以为是代理服务器在请求自己。这样在爬取过程中通过不断更换代理,就不会被封锁,可以达到很好的爬取效果。
代理分类
1.根据协议区分
根据代理的协议,代理可以分为如下类别:
FTP 代理服务器,主要用于访问 FTP 服务器,一般有上传、下载以及缓存功能,端口一般为 21、2121 等。
HTTP 代理服务器,主要用于访问网页,一般有内容过滤和缓存功能,端口一般为 80、8080、3128 等。
SSL/TLS 代理,主要用于访问加密网站,一般有 SSL 或 TLS 加密功能(最高支持 128 位加密强度),端口一般为 443。
RTSP 代理,主要用于 Realplayer 访问 Real 流媒体服务器,一般有缓存功能,端口一般为 554。
Telnet 代理,主要用于 telnet 远程控制(黑客入侵计算机时常用于隐藏身份),端口一般为 23。
POP3/SMTP 代理,主要用于 POP3/SMTP 方式收发邮件,一般有缓存功能,端口一般为 110/25。
SOCKS 代理,只是单纯传递数据包,不关心具体协议和用法,所以速度快很多,一般有缓存功能,端口一般为 1080。SOCKS 代理协议又分为 SOCKS4 和 SOCKS5,SOCKS4 协议只支持 TCP,而 SOCKS5 协议支持 TCP 和 UDP,还支持各种身份验证机制、服务器端域名解析等。简单来说,SOCK4 能做到的 SOCKS5 都可以做到,但 SOCKS5 能做到的 SOCK4 不一定能做到。
2. 根据匿名程度区分
根据代理的匿名程度,代理可以分为如下类别。
高度匿名代理,高度匿名代理会将数据包原封不动的转发,在服务端看来就好像真的是一个普通客户端在访问,而记录的 IP 是代理服务器的 IP。
普通匿名代理,普通匿名代理会在数据包上做一些改动,服务端上有可能发现这是个代理服务器,也有一定几率追查到客户端的真实 IP。代理服务器通常会加入的 HTTP 头有 HTTP_VIA 和 HTTP_X_FORWARDED_FOR。
透明代理,透明代理不但改动了数据包,还会告诉服务器客户端的真实 IP。这种代理除了能用缓存技术提高浏览速度,能用内容过滤提高安全性之外,并无其他显著作用,最常见的例子是内网中的硬件防火墙。
间谍代理,间谍代理指组织或个人创建的,用于记录用户传输的数据,然后进行研究、监控等目的代理服务器。
相关文章:

python爬虫初识
一、什么互联网 互联网(Internet)是全球范围内最大的计算机网络,它将数以百万计的私人、公共、学术、商业和政府网络通过一系列标准通信协议(如TCP/IP)连接起来形成的一个庞大的国际网络。 互联网的起源可以追溯到196…...

Java中类的构造
1.私有化成员变量。 2.空参构造方法。 3.带全部参数的构造方法。 4.get / set方法。 package demo;public class student{//1.私有化成员变量。//2.空参构造方法。//3.带全部参数的构造方法。//4.get / set方法。private String name;private int age;public student() {}pu…...

【C++高阶】深入理解C++异常处理机制:从try到catch的全面解析
📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:Lambda表达式 🌹🌹期待您的关注 🌹🌹 ❀C异常 📒1. C异常概念…...

【RHEL7】无人值守安装系统
目录 一、kickstart服务 1.下载kickstart 2.启动图形制作工具 3.选择设置 4.查看生成的文件 5.修改ks.cfg文件 二、HTTP服务 1.下载HTTP服务 2.启动HTTP服务 3.将挂载文件和ks.cfg放在HTTP默认目录下 4.测试HTTP服务 三、PXE 1.查看pxe需要安装什么 2.安装 四、…...

[RTOS 学习记录] 预备知识:C语言结构体
这篇文章是我阅读《嵌入式实时操作系统μCOS-II原理及应用》后的读书笔记,记录目的是为了个人后续回顾复习使用。 文章目录 结构体结构体基础声明和定义结构体类型声明和定义结构体变量初始化结构体变量初始化各个成员使用列表符号初始化 使用结构体变量综上 结构体…...

sqli-labs注入漏洞解析--less-9/10
第九关: 这一关相比第八关,第八关他正确显示you are in,错误不显示you are in,但是第九关你不管是输入正确或者错误都显示 you are in ,这个时候布尔盲注就不适合我们用,所以我们的换一下思路,布尔盲注适合页面对于错误和正确结果…...

文心智能体平台:食尚小助,提供美食推荐和烹饪指导
文章目录 前言文心智能体平台介绍创建自己的智能体我的文心智能体体验地址总结 前言 在快节奏的现代生活中,许多人都希望能够享受美味的食物,但往往缺乏时间和精力来自己动手烹饪。为了解决这一问题,文心智能体平台推出了“食尚小助”智能体…...

工作中,如何有效解决“冲突”?不回避,不退让才是最佳方式
职场里每个人都在争取自己的利益,由于立场的不同,“冲突”不可避免。区别在于有些隐藏在暗处,有些摆在了台面上。 隐藏在“暗处”的冲突,表面上一团和气,实则在暗自较劲,甚至会有下三滥的手段;…...
Qt读写配置(ini)文件
本文介绍Qt读写配置(ini)文件。 1.配置文件(ini)简介 配置文件(ini)也叫ini文件(Initialization File),即初始化文件。它由节名,键名,键值构成。…...
Python笔试面试题AI答之面向对象(2)
文章目录 6.阐述 Python自省(机制与函数) ?7.简述Python中面向切面编程AOP和装饰器?面向切面编程(AOP)基本概念核心原理应用场景Python中的实现方式 装饰器(Decorator)基本概念语法应…...
Python学习计划——12.1选择一个小项目并完成
在这节课中,我们将选择一个小项目并完成它。为了综合运用前面所学的知识,我们选择构建一个简单的Web应用,该应用将包含数据分析和展示功能。我们将使用Flask框架和Pandas库来处理数据,并将结果展示在Web页面上。 项目:…...

uniapp 多渠道打包实现方案
首先一个基础分包方案: 包不用区分渠道,只是通过文件名进行区分,公共代码逻辑可以通过mixins进行混入。 这样分包后就需要在打包时只针对编译的渠道包文件进行替换打包,其他渠道包的文件不打包进去,通过工具类实现…...

请你学习:前端布局3 - 浮动 float
1 标准流(也称为普通流、文档流) 标准流(也称为普通流、文档流)是CSS中元素布局的基础方式,它决定了元素在页面上的默认排列方式。这种布局方式遵循HTML文档的结构,不需要额外的CSS样式来指定元素的位置。…...

PyCharm 2024.1 总结和最新变化
您好,我是程序员小羊! 前言 PyCharm 2024.1 是 JetBrains 最新发布的Python集成开发环境(IDE),旨在提供更强大的功能和更好的用户体验。以下是对这个版本的总结和最新变化的介绍 智能代码建议和自动完成:…...

RGB红绿灯——Arduino
光的三原色 牛顿发现光的色散奥秘之后,进一步计算发现:七种色光中只有红、绿、蓝三种色光无法被分解,而其他四种颜色的光均可由这三种色光以不同比例相合而成。于是红、绿、蓝被称为“三原色光”或“光的三原色”。后经证实:红、绿…...

浅谈用二分和三分法解决问题(c++)
目录 问题引入[NOIP2001 提高组] 一元三次方程求解题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示思路分析AC代码 思考关于二分和三分例题讲解进击的奶牛题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 平均数题目描述输入格式输出格式样例 …...

Cocos Creator2D游戏开发(9)-飞机大战(7)-爆炸效果
这个爆炸效果我卡在这里好长时间,视频反复的看, 然后把代码反复的测试,修改,终于给弄出来 视频中这段,作者也是修改了好几次, 跟着做也走了不少弯路; 最后反正弄出来了; 有几个坑; ① 动画体创建位置是enemy_prefab ② enemy_prefab预制体下不用放动画就行; ③ 代码中引用Anima…...

终于有人把华为认证全部说清楚了
在信息技术领域,华为认证好比一座金字招牌,吸引着无数技术专业人士的青睐。 市场上关于华为认证的声音纷繁复杂,存在不少争议,让人难以辨别真伪。 今天就来好好讲讲华为认证,从头到尾都帮你盘盘清楚。 01 华为认证是…...

【知识】pytorch中的pinned memory和pageable memory
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 概念简介 pytorch用法 速度测试 反直觉情况 概念简介 默认情况下,主机 (CPU) 数据分配是可分页的。GPU 无…...

【系统架构设计】数据库系统(五)
数据库系统(五) 数据库模式与范式数据库设计备份与恢复分布式数据库系统数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库设计 备份与恢复 分布式数据库系统 数据仓库 数据挖掘 对数据挖掘技术进行支持的三种基础技术已经发展成熟,…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...