网络爬虫【简介】
我叫补三补四,很高兴见到大家,欢迎一起学习交流和进步
今天来讲一讲爬虫
一、网络爬虫的定义
网络爬虫(Web Crawler),又称为网络蜘蛛、网络机器人等,是一种按照一定规则自动抓取互联网信息的程序或脚本。它通过模拟浏览器的行为,发送HTTP请求获取网页内容,并从中提取有用信息。网络爬虫广泛应用于搜索引擎、大数据分析、学术研究等领域,是互联网信息采集的重要工具。
二、网络爬虫的类型
网络爬虫主要分为通用网络爬虫和定向网络爬虫两大类。
(一)通用网络爬虫
通用网络爬虫,又称全网爬虫,旨在从互联网上尽可能多地抓取网页信息,覆盖各种类型和主题的网站。其特点包括:
1. 覆盖范围广:不局限于特定领域,目标是构建全面的网页索引。
2. 遵循规则:通常遵循robots.txt协议,尊重网站的抓取规则。
3. 并行工作:由于数据量巨大,通常采用并行爬取的方式。
通用网络爬虫的实现原理主要包括以下几个模块:
• 初始URL集合:作为爬取的起点。
• URL队列:存储待爬取的网页链接。
• 页面爬行模块:通过HTTP请求获取网页内容。
• 页面分析模块:解析网页,提取其中的链接和内容。
• 页面数据库:存储爬取到的网页。
• 链接过滤模块:避免重复抓取相同的网页。
通用网络爬虫通常采用深度优先或广度优先的搜索策略。
(二)定向网络爬虫
定向网络爬虫,又称聚焦网络爬虫或主题网络爬虫,是有选择地抓取与特定主题相关的网页。其特点包括:
1. 目标明确:专注于特定领域或主题,如科技新闻、医学研究等。
2. 节省资源:由于目标明确,不需要遍历整个互联网,因此在存储和计算资源的消耗上相对较少。
定向网络爬虫的实现原理与通用网络爬虫类似,但增加了内容评价和链接评价模块。其核心在于通过特定的策略和算法选择要抓取的网页,通常会使用机器学习或自然语言处理技术来判断网页内容是否符合预定主题。
三、常见的搜索策略
网络爬虫在抓取网页时,通常会采用以下几种搜索策略:
(一)深度优先搜索(DFS)
深度优先搜索的基本方法是按照深度由低到高的顺序,依次访问下一级网页链接,直到不能再深入为止。爬虫在完成一个爬行分支后返回到上一链接节点,继续搜索其他链接。这种策略适合垂直搜索或站内搜索,但可能会导致资源浪费。
(二)广度优先搜索(BFS)
广度优先搜索按照网页内容目录层次深浅来爬行页面,优先抓取较浅层次的页面。当同一层次中的页面爬行完毕后,再深入下一层继续爬行。这种策略能够有效控制爬行深度,避免陷入无穷深层分支。
(三)最佳优先搜索(Best-First Search)
最佳优先搜索是一种基于启发式的搜索策略,它通过评估每个节点的重要性来决定下一步的抓取顺序。例如,可以基于页面与主题的相关性、链接质量等因素进行评估。这种方法能够更高效地抓取有价值的信息,尤其适用于定向网络爬虫。
开发者工具
在从事编程开发的人员,其实浏览器也是其必备的开发工具
在找到目标网页以后我们可以使用快捷键F12,也可以通过在网页右键选择检查或者用组合键ctrl+shift+I来打开开发者工具
开发者工具的界面共有9个标签页,分别是:Elements、Console、Sources、Network、Performance、Memory、Application、Security和Audits。
如果是用于爬虫分析的话,熟练掌握Elements和Network标签就能满足大部分的爬虫需求。
Elements标签
在Elements标签中允许从浏览器的角度看页面,也就是说可以看到Chrome渲染页面所需要的HTML、CSS和DOM(Document Object Model)对象,也可以编辑内容更改页面的显示效果。
Elements标签分成两个部分,其中区域1用于显示页面的HTML信息,当选中某一行的内容时,区域2会显示当前选中的css样式,并且允许对元素的css样式进行查看和编辑,computed显示当前选中的边距属性,边框属性,Event Listeners是整个网页事件触发的JavaScript
通过单击Event Listeners下的某个JavaScript会自动跳转到Sources标签,显示当前JavaScript的源码,这个功能可快速找到JavaScript代码所在的位置,对分析JavaScript起到快速定位作用。
Network标签
从network当中可以看到页面向服务器请求的信息,请求的大小,以及请求花费的时间
network标签主要包含五个区域:
1.功能区
• 记录开关:红色圆点表示是否开启网络日志记录,灰色为未开启,红色为已开启。
• 清除日志:清除当
前所有网络请求记录。
• 屏幕捕获:开启后会记录页面在不同时间下的快照。
• 过滤器开关:开启后可显示筛选区。
• 快速查找:用于快速查找特定请求。
• 显示设置:包括是否使用更大的区域显示请求记录、是否显示Overview等。
• 分组显示:勾选后可按表单名称对网络请求进行分组。
• 保留日志:勾选后,页面刷新不会清空之前的请求记录。
• 禁用缓存:当打开开发者工具时生效,页面资源不会存入缓存。
• 离线模式:用于测试离线状态下的页面表现。
• 网络限速:模拟不同网络条件,如弱网。
2.筛选区
• 提供多种预定义的筛选选项,如ALL(显示所有请求)、XHR(AJAX异步请求)、JS(JavaScript文件)、CSS(样式表文件)、Img(图片)、Media(媒体文件)、Font(字体文件)、Doc(HTML文档)、WS(WebSocket请求)等。
• 还可以输入自定义条件进行筛选。
3.时间轴区(Overview)
• 以时间轴的形式展示页面加载过程,包括DOMContentLoaded和load事件的触发时间。
• 可以通过滑动鼠标滚轮查看不同时间点的加载情况。
4.主显示区
• 显示所有网络请求的详细列表,包括以下列:
• Name:请求资源的名称。
• Status:HTTP状态码。
• Type:请求资源的MIME类型。
• Initiator:发起请求的对象或进程。
• Size:服务器返回的响应大小。
• Time:请求的总持续时间。
• Waterfall:各请求相关活动的直观分析图。
• 点击某个请求的名称,可以查看该请求的详细信息,包括Headers(请求头和响应头)、Preview(预览)、Response(响应内容)、Cookies(Cookie信息)、Timing(请求生命周期各阶段时间)等。
5.信息汇总区
• 显示当前页面加载的总请求数、数据传输量、加载时间等信息。
• 包括DOMContentLoaded和load事件的触发时间及其在时间轴上的标记。
Requests Table
5个区域中,Requests Table是核心部分,主要作用是记录每个请求信息。但每次网站出现刷新时,请求列表都会清空并记录最新的请求信息,如用户登录后发生304跳转,就会清空跳转之前的请求信息并捕捉跳转后的请求信息。对于每条请求信息,可以单击查看该请求的详细信息:
每条请求信息划分为以下5个标签。
● Headers:该请求的HTTP头信息。
● Preview:根据所选择的请求类型(JSON、图片、文本)显示相应的预览。
● Response:显示HTTP的Response信息。
● Cookies:显示HTTP的Request和Response过程中的Cookies信息。
● Timing:显示请求在整个生命周期中各部分花费的时间。
关于Headers的内容如下:
Headers 标签通常分为以下几个部分:
1.请求方法和URL
• Request Method:显示请求的HTTP方法(如GET、POST、PUT、DELETE等)。
• Request URL:显示请求的完整URL。
• Request HTTP Version:显示使用的HTTP版本(如HTTP/1.1、HTTP/2等)。
2.请求头(Request Headers)
请求头是由客户端发送给服务器的头信息,它包含了关于请求的元数据。常见的请求头包括:
• Accept:客户端可接受的响应内容类型(如`text/html`、`application/json`等)。
• Accept-Encoding:客户端可接受的内容编码方式(如`gzip`、`deflate`等)。
• Accept-Language:客户端偏好的语言(如`zh-CN`)。
• Authorization:用于身份验证的凭据(如Basic Auth、Bearer Token等)。
• Content-Length:请求体的长度(仅在POST或PUT请求中出现)。
• Content-Type:请求体的内容类型(如`application/json`、`application/x-www-form-urlencoded`等)。
• Cookie:客户端存储的Cookie信息。
• Host:请求的主机名。
• Origin:发起请求的源(用于CORS跨域请求)。
• Referer:请求的来源页面。
• User-Agent:客户端的浏览器或设备信息。
3.响应头(Response Headers)
响应头是由服务器返回给客户端的头信息,它包含了关于响应的元数据。常见的响应头包括:
• Access-Control-Allow-Origin:允许访问资源的源(用于CORS跨域请求)。
• Cache-Control:缓存策略(如`no-cache`、`max-age`等)。
• Content-Encoding:响应体的内容编码方式(如`gzip`)。
• Content-Length:响应体的长度。
• Content-Type:响应体的内容类型(如`text/html`、`application/json`等)。
• Date:服务器生成响应的时间。
• ETag:资源的唯一标识符,用于缓存验证。
• Expires:响应过期时间。
• Last-Modified:资源最后修改时间。
• Location:重定向目标URL。
• Set-Cookie:服务器设置的Cookie信息。
• Server:服务器软件信息。
4.请求体(Request Payload)
对于POST或PUT请求,Headers 标签还会显示请求体的内容。这通常用于查看发送到服务器的数据,例如表单数据、JSON对象等。
5.查询参数(Query String Parameters)
如果请求URL中包含查询参数(如`?key=value`),Headers 标签会将这些参数列出,方便开发者查看。
---
Headers 标签的作用
1. 调试请求和响应:通过查看Headers,可以确认请求是否正确发送,以及服务器是否返回了预期的响应。
2. 优化性能:通过分析缓存头(如`Cache-Control`、`ETag`等),可以优化页面的缓存策略,减少重复请求。
3. 排查跨域问题:通过查看`Access-Control-Allow-Origin`等头信息,可以排查CORS跨域问题。
4. 验证身份认证:通过检查`Authorization`头,可以确认身份认证信息是否正确传递。
5. 分析内容编码:通过查看`Content-Encoding`和`Content-Type`,可以确认资源是否被正确压缩和解析。
---
示例
假设你发起一个GET请求,Headers标签可能显示如下内容:
请求方法和URL
GET /api/data HTTP/1.1
请求头
Host: example.com
Connection: keep-alive
Accept: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: sessionid=1234567890
响应头
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 256
Cache-Control: max-age=3600
Date: Sat, 15 Oct 2023 12:34:56 GMT
Set-Cookie: sessionid=9876543210; Path=/; HttpOnly
请求体(如果适用)
如果是一个POST请求,可能会显示:
Request Payload:
{"username": "user","password": "pass"
}
网站分析步骤:
分析网站的步骤如下:
步骤01 找出数据来源,大部分数据来源于Doc、XHR和JS标签。
步骤02 找到数据所在的请求,分析其请求链接、请求方式和请求参数。
步骤03 查找并确定请求参数来源。有时候某些请求参数是通过另外的请求生成的,比如请求A的参数id是通过请求B所生成的,那么要获取请求A的数据,就要先获取请求B的数据作为A的请求参数。
相关文章:
网络爬虫【简介】
我叫补三补四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲爬虫 一、网络爬虫的定义 网络爬虫(Web Crawler),又称为网络蜘蛛、网络机器人等,是一种按照一定规则自动抓取互联网信息的程序或脚本。它…...
Linux:Ubuntu server 24.02 上搭建 ollama + dify
一、安装Ubuntu 具体的安装过程可以参见此链接:链接:Ubuntu Server 20.04详细安装教程,这里主要记录一下过程中遇到的问题。 安装时subnet如何填写 在Ubuntu中subnet填写255.255.255.0是错误的,其格式为 xx.xx.xx.xx/yy &#…...
【生日蛋糕——DFS剪枝优化】
题目 分析 代码 #include <bits/stdc.h> using namespace std;const int N 24; const int inf 0x3f3f3f3f;int mins[N], minv[N]; int R[N], H[N]; int n, m, ans inf;void dfs(int u, int v, int s) {if(v minv[u] > n) return;if(s mins[u] > ans) return;…...
RabbitMq C++客户端的使用
1.RabbitMq介绍 RabbitMQ 是一款开源的消息队列中间件,基于 AMQP(高级消息队列协议)实现,支持多种编程语言和平台。以下是其核心特点和介绍: 核心特点 多语言支持 提供 Java、Python、C#、Go、JavaScript 等语言的客…...
入门基础项目-前端Vue_02
文章目录 1. 用户信息1.1 整体设计1.2 完整代码 User.vue1.2.1 数据加载1.2.2 表格 el-table1.2.2.1 多选1.2.2.2 自定义列的内容 Slot1.2.2.3 图片 el-image1.2.2.4 分页 el-pagination 1.2.3 编辑1.2.3.1 弹出框 el-dialog1.2.3.2 上传 el-upload 1.2.4 新增1.2.5 删除1.2.6 …...
C#中SerialPort 的使用
最近在学习C#的SerialPort ,关于SerialPort 的使用,做如下总结: 1.可以通过函数System.IO.Ports.SerialPort.GetPortNames() 将获得系统所有的串口名称。C#代码如下: string[] sPorts SerialPort.GetPortNames(); foreach(stri…...
使用py-ffmpeg批量合成视频的脚本
我有一个小米摄像头,用它录出来的视频全部都是3s一段3s一段的。其中有几个小时的视频我需要保存,当初直接把摄像头的卡文件导出来重命名掉了,那时候没有注意,之后想剪辑/发送给别人的时候发现疯了: 1.剪辑的话&#x…...
mac安装navicat及使用
0.删除旧的 sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/com.apple.helpd/SDMHelpData/Other/English/HelpSDMIndexF…...
织梦dedecmsV5.7提示信息提示框美化(带安装教程和效果展示)
一、效果展示 1、安装前效果 2、安装后效果 二、安装说明 1、安装测试版本:DedeCMS-V5.7.117-UTF8; 2、必须在修改代码之前请做好文件备份,以免误操无法恢复; 3、为了兼容其他版本,请在安装时,最好将替…...
【知识迁移的底层逻辑:从符号到语义的升维】
大语言模型(LLMs)能够通过有限语料库实现广泛知识迁移并回答多样化问题,其核心机制在于抽象模式学习、上下文推理能力及知识组合泛化,而非简单的数据记忆。以下是具体实现路径与技术原理: 一、知识迁移的底层逻辑&…...
Windows根据文件名批量在文件夹里查找文件并复制出来,用WPF实现的详细步骤
项目前言 在日常工作和生活中,我们常常会遇到需要从大量文件中根据文件名批量查找特定文件并复制到指定位置的情况。手动一个个查找和复制文件不仅效率低下,还容易出错。使用 Windows Presentation Foundation (WPF) 可以创建一个用户友好的图形界面应用…...
Certbot实现SSL免费证书自动续签(CentOS 7版 + Docker部署的nginx)
前置安装,可参考Certbot实现SSL免费证书自动续签(CentOS 7 nginx/apache) 如果是通过 Docker 运行 Nginx, certbot 无法直接检测到本地的 Nginx 配置。解决方案是 使用 standalone 模式 或 挂载 Webroot 方式获取 SSL 证书&…...
一周学会Flask3 Python Web开发-SQLAlchemy查询所有数据操作-班级模块
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们来新建一个的蓝图模块-班级模块,后面可以和学生模块,实现一对多的数据库操作。 blueprint下新建g…...
工程实践:如何使用SU17无人机来实现室内巡检任务
阿木实验室最近发布了科研开发者版本的无人机SU17,该无人机上集成了四目视觉,三维激光雷达,云台吊舱,高算力的机载计算机,是一个非常合适的平台用于室内外巡检场景。同时阿木实验室维护了多个和无人机相关的开源项目。…...
14.使用各种读写包操作 Excel 文件:辅助模块
一 各种读写包 这些是 pandas 在底层使用的各种读写包。无须安装 pandas,直接使用这些读写包就能够读写 Excel 工作簿。可以尽可能地使用 pandas 来解决这类问题,只在 pandas 没有提供你所需要的功能时才用到读写包。 表中没有 xlwings ,因为…...
深入理解 Maven BOM 及其继承特性
深入理解 Maven BOM 及其继承特性 一、什么是 Maven BOM? Maven BOM(Bill Of Materials,物料清单)是一种特殊的 Maven 项目,用于集中管理依赖项的版本信息。BOM 项目本身并不包含实际的代码或资源,而仅仅…...
责任链模式如何减少模块之间的耦合
责任链模式如何减少模块之间的耦合 在复杂的软件系统中,模块之间的耦合是一个常见的问题。高耦合的代码不仅增加了维护成本,还会导致系统的扩展性和灵活性受限。当我们需要为不同的请求设计灵活的处理逻辑时,传统的硬编码方式会将请求的发送…...
Java面试:集合框架体系
一、ArrayList 1.数组(Array) 是一种用连续的内存空间存储相同数据类型数据的线性数据结构 数组如何获取其他元素的地址值? 寻址公式:a[i] baseAddress i * dataTypeSize baseAddress:数组的首地址dataTypeSize&am…...
【八股文】ArrayList和LinkedList的区别
先讲讲两者是如何实现的 ArrayList public class ArrayList<E> extends AbstractList<E>implements List<E>, RandomAccess, Cloneable, java.io.Serializable {transient Object[] elementData; private int size; } 通过源码可以看出,ArrayLis…...
sentinel限流算法
限流算法:固定窗口算法、滑动时间窗口、令牌桶和漏桶这四种常见限流算法的原理: 限流算法原理 固定窗口: 固定窗口算法将时间划分为固定大小的窗口,并在每个窗口内限制请求的数量。在每个窗口开始时,计数器重置&#…...
Spring生态下的中台架构设计:如何构建可扩展业务系统?
一、中台战略的架构觉醒 在数字化转型的浪潮中,企业面临的核心矛盾日益凸显:前端业务的快速迭代需求与后端系统刚性架构之间的矛盾。中台架构的提出,本质上是对传统单体架构和过度微服务化的辩证扬弃。Spring生态以其模块化设计理念,恰好为中台建设提供了绝佳的技术土壤。…...
Project回调函数qsort②进阶应用
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h>//库函数strcmp头文件 //使用qsort排序结构体 struct Stu { char name[20]; int age; }; //按照年龄排序 int cmp_stu_by_age(const void* e1,const void* e2) { return ((struc…...
【推荐项目】052-用水监控管理系统
052-用水监控管理系统 介绍 用水监控管理系统 springboot java vuejs jdk1.8 当然,以下是一个简洁的用水监控管理系统的功能模块划分,基于Spring Boot(JDK 1.8)后端和Vue.js前端: 用水监控管理系统功能模块 后端&…...
Hive SQL 精进系列:PERCENTILE_APPROX 搞定分位数
目录 一、引言二、percentile_approx 函数基础2.1 基本语法参数解释返回值简单示例 三、应用场景3.1 数据分析与报告3.2 数据清洗与异常值检测3.3 性能监控与优化 四、使用注意事项4.1 数据类型要求4.2 精度与性能平衡4.3 空值处理 五、总结 一、引言 百分位数作为一种常用的统…...
使用Hbuilder发布小程序显示发布失败?
接受了一个新uniapp项目 但是在Hbuilder中发行报错 小程序发行失败 试了几次还是不行 写代码的人也走了,头疼。 不用Hbuilder小程序的主包体积又太大哎 开发工具无法上传~ 后来想看一下 这个发布失败到底有没有生成打包好的文件 如果生成了可以试一下 直接导入到微信…...
甲骨文找回二次验证的方法(超简单)
因为更换手机丢失了二次验证。 然后给客服沟通,获得了找到二次验证的办法,希望对你有用。 1、登录到账号登陆界面,查看地址栏当中自己的IDCE地址(yourIDCS_Stripe_here)部分,并复制。 https://idcs-yourID…...
Tcp网络通信的基本流程梳理
先来一张经典的流程图 接下介绍一下大概流程,各个函数的参数大家自己去了解加深一下印象 服务端流程 1.创建套接字:使用 socket 函数创建一个套接字,这个套接字后续会被用于监听客户端的连接请求。 需要注意的是,服务端一般有俩…...
C++相关基础概念之入门讲解(上)
1. 命名空间 C中的命名空间(namespace)是用来避免命名冲突问题的一种机制。通过将类、函数、变量等封装在命名空间中,可以避免不同部分的代码中出现相同名称的冲突。在C中,可以使用namespace关键字来定义命名空间。 然后我们在调…...
Redis能否替代MySQL作为主数据库?深入解析两者的持久化差异与适用边界——基于AOF持久化与关系型数据库的对比
一、Redis的持久化机制与可靠性分析 AOF持久化原理与策略 Redis的AOF(Append Only File)通过记录所有写操作命令实现持久化,支持三种策略: **always模式**:每条命令执行后立即同步到磁盘,理论上数据丢失…...
Hive函数大全:从核心内置函数到自定义UDF实战指南(附详细案例与总结)
目录 背景一、Hive函数分类与核心函数表1. 内置函数分类2. 用户自定义函数(UDF)分类二、常用函数详解与实战案例1. 数学函数2. 字符串函数3. 窗口函数4. 自定义UDF实战三、总结与优化建议1. 核心总结2. 性能优化建议3. 常问问题背景 Hive作为Hadoop生…...
如何修改 Ubuntu 软件源(镜像源)
如何修改 Ubuntu 软件源(镜像源) 前言 在使用 Ubuntu 时,默认的软件源可能速度较慢,影响软件安装和系统更新的效率。我们可以通过修改 sources.list 文件或使用图形界面更换更快的镜像源,提升软件包管理的速度。 本…...
在Spring Boot项目中接入DeepSeek深度求索,感觉笨笨的呢
文章目录 引言1. 什么是DeepSeek?2. 准备工作2.1 注册DeepSeek账号 3.实战演示3.1 application增加DS配置3.2 编写service3.3 编写controller3.4 编写前端界面chat.html3.5 测试 总结 引言 在当今快速发展的数据驱动时代,企业越来越重视数据的价值。为了…...
AP AR
混淆矩阵 真实值正例真实值负例预测值正例TPFP预测值负例FNTN (根据阈值预测) P精确度计算:TP/(TPFP) R召回率计算:TP/(TPFN) AP 综合考虑P R 根据不同的阈值计算出不同的PR组合, 画出PR曲线,计算曲线…...
Vue 中的 MVVM、MVC 和 MVP 模式深度解析
文章目录 1. 模式概览与核心概念1.1 模式定义1.2 架构对比图 2. MVC 模式详解2.1 MVC 流程图2.2 Vue 中的 MVC 实现 3. MVP 模式详解3.1 MVP 流程图3.2 Vue 中的 MVP 实现 4. MVVM 模式详解4.1 MVVM 流程图4.2 Vue 中的 MVVM 实现 5. 模式对比分析5.1 职责对比5.2 通信方式对比…...
WVP前后端部署
使用默认的构建,能够直接访问18080,我以为二者是一起的。实际上这不影响前后端分离。 前端服务器 构建war之后,部署到另外一台机器上,比如使用apache2。 后端服务器 修改src/main/resources/static/static/js/config.js&#…...
VSTO(C#)Excel开发9:处理格式和字体
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…...
蓝耘MaaS平台:阿里QWQ应用拓展与调参实践
摘要:本文深入探讨了蓝耘MaaS平台与阿里QWQ模型的结合,从平台架构、模型特点到应用拓展和调参实践进行了全面分析。蓝耘平台凭借其强大的算力支持、弹性资源调度和全栈服务,为QWQ模型的高效部署提供了理想环境。通过细化语义描述、调整推理参…...
【统计学相关笔记】2. 多元正态的Cochran定理
fisher 引理 如何说明一个线性变换和二次型独立: 二次型矩阵和线性变换阵乘积0即可。...
Vuex 基础概念与环境搭建
Vuex 是实现数据集中式状态管理的插件。所有组件共享 Vuex 中的数据,当任意组件修改数据时,其他组件会同步更新。与全局事件总线的区别在于: 全局事件总线:数据传递但未真正共享Vuex:数据存储在中央仓库,实…...
使用 BookMarkHub 插件进行书签同步
前言: 通过 BookMarkHub 插件,你可以方便地将书签同步到 GitHub Gist,实现跨设备管理书签。以下是详细的步骤: 使用 BookMarkHub 插件进行书签同步 1. 安装 BookMarkHub 插件2. 获取 GitHub Token3. 获取 Gist ID4. 配置 BookMarkHub 插件5.完…...
用Lua脚本实现Redis原子操作
1. 环境准备 依赖:在pom.xml中添加Spring Data Redis: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>配置RedisTemplate&#…...
【算法】位运算
文章目录 1. 常见位运算总结(图片包含五道算法题)2. leetcode 面试题 01.01 判断字符是否唯一2.1 题目2.2 思路2.3 代码 3.leetcode 268. 丢失的数字3.1 题目3.2 思路3.3 代码 4. leetcode 371.两整数之和4.1 题目4.2 思路4.3 代码 5.leetcode 137.只出现…...
HTML块级元素和内联元素(简单易懂)
在HTML中,元素可以分为块级元素(Block-level elements)和内联元素(Inline elements)。这两类元素在页面布局和样式应用上有不同的特点和用途。 一、块级元素(Block-level elements) 1. 定义 …...
【论文精读】DifFace: Blind Face Restoration with Diffused Error Contraction
文章目录 0.前言1.当前问题2.怎么解决问题3.具体做法(Method)3.1 受什么的启发?(Motivation)3.2具体的模型设计(Design)3.3 整体算法 4.实验效果4.1 Synthetic(CelebA-Test)4.2 Real World (LFW, WebPhoto, and WIDER) 0.前言 这篇文章是被 …...
[新能源]新能源汽车快充与慢充说明
接口示意图 慢充接口为交流充电口(七孔),快充接口为直流充电口(九孔)。 引脚说明 上图给的是充电口的引脚图,充电枪的为镜像的。 慢充接口引脚说明 快充接口引脚说明 充电流程 慢充示意图 慢充&…...
AI智能分析网关V4将HTTP消息推送至安防监控视频汇聚EasyCVR平台的操作步骤
TSINGSEE青犀视频智能分析网关V4内置了近40种AI算法模型,支持对接入的视频图像进行人、车、物、行为等实时检测分析,上报识别结果,并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入,可兼容市面上常…...
程序代码篇---STM32串口通信
文章目录 前言1. 头文件和全局变量2. 串口1初始化函数3. 串口1发送字节函数4. 串口1发送字符串函数5. 串口1发送数字函数6. 重定义fputc函数7. 串口数据解析函数8. 串口2中断服务程序总结 前言 本次将介绍一个基于STM32微控制器的串口通信实现,包含了串口的初始化、…...
PECL(Positive Emitter-Coupled Logic)电平详解
一、PECL电平的定义与核心特性 PECL(正射极耦合逻辑)是一种基于 射极耦合逻辑(ECL)技术 的高速差分信号标准,采用 正电源供电(如5V或3.3V)。其核心特性包括 高速传输、低噪声、强抗干扰能力&am…...
1、操作系统引论
一、操作系统 会使用linux系统 建议大家先学会linux的基础指令,可以看菜鸟教程网站进行学习。 1、各种定义 操作系统定义 管理计算机的 硬件 和软件资源, 能对各类作业进行调度,方便用户使用计算机的程序集合。操作系统运行在内核态…...
L1-7 统一命名规范(java)
你所在的公司刚刚招收了几位程序员,然而这些程序员之前在不同的公司工作,所以他们习惯的变量命名规范可能存在差异,需要让他们都习惯公司要求的命名规范,然而这样可能会降低他们的工作效率。 你的上司找到了你,希望你…...