网络爬虫科普:原理、类型、策略与常用工具
网络爬虫科普:原理、类型、策略与常用工具
网络爬虫在当今互联网时代扮演着极为重要的角色,它能帮助我们从海量的网络信息中提取出有价值的数据。以下将从网络爬虫的基本概念、工作流程、类型、搜索策略以及常用工具等方面进行详细科普介绍。
一、网络爬虫的基本概念
网络爬虫是一种自动程序,它如同智能助手般在互联网上运行,能够访问网页、读取并提取有用信息。形象地说,就好比图书管理员面对海量图书寻找特定信息时,网络爬虫可以快速穿梭于网页之间,为使用者迅速定位感兴趣的内容。在日常生活中,无论是搜索引擎呈现网页结果,还是进行数据分析等工作,网络爬虫都默默发挥着关键作用,是众多互联网服务背后的得力帮手。
二、网络爬虫的工作流程
网络爬虫的工作流程与邮递服务有着相似之处。它从一系列精心挑选的种子号(就像邮递员手中的首批信件,指明要访问的第一批网页)开始,这些种子号随后被加入待抓取队列(相当于邮递员的任务清单)。爬虫依据这个清单逐个访问网页,在处理一个网页时,会解析 DNS 来找到服务器的 IP 地址(类似邮递员根据门牌号找到正确的房子),之后下载网页(可看作邮递员将信件交给收件人),网页被妥善存储。完成下载后,该网页会被转移到已抓取队列,标志着该任务的完成(类似于邮递员在清单上打勾)。最为关键的是,爬虫会分析已抓取的网页,提取新的链接并将其加入待抓取队列,如此循环,不断探索新的信息源,直至待抓取队列被清空或达到预设的停止条件。通过这样的流程,网络爬虫能够高效地从互联网海量数据中提取有价值信息,在构建搜索引擎、市场分析以及学术研究等诸多领域都不可或缺。
三、网络爬虫对互联网的划分
网络爬虫从其独特视角将互联网分成了 5 大部分:
- 已下载未过期网页:指那些已经被爬虫访问过,而且内容还是最新的网页。因为我们通过爬虫抓取的网页本质上是某一瞬间互联网内容的快照,随着时间推移,若网页未更新,那就是已下载未过期网页。
- 已下载已过期网页:有的网页虽然已经被下载了,但是由于时间变化,其内容可能已经更新改变,原始抓取的快照就不再准确、变得过时了,这类网页就是已下载已过期网页。
- 待下载网页:即将进入我们视野的内容网页,它们已经在待抓取队列中,是我们下一次数据更新的主要来源,如同排队等待进入电影院的观众。
- 可知网页:这些页面虽未被抓取,但通过分析已抓取内容,我们可以预见并计划抓取它们,就像通过现有社交网络结识新朋友一样。
- 不可知网页:这类网页是无法直接抓取下载的,可能是由于权限限制、网站结构复杂或者使用了某些反爬虫技术等原因造成的。对于这些网页,往往需要更高级的技术手段和策略,比如模拟浏览器行为、使用 API 接口等来尝试获取页面内容。
四、网络爬虫的主要类型
- 按功能分类:
- 批量型爬虫:犹如大力士,一次能搬运很多数据回家,擅长大量数据的采集工作。
- 增量型爬虫:好似细心的园丁,定期去检查和更新花园,通过初始配置(设定好抓取频率和更新策略等),周期性访问并抓取网页的最新内容,确保数据的时效性,常用于新闻跟踪、价格监控和热点事件分析等场景,也备受搜索引擎青睐,用于持续更新索引。
- 垂直型爬虫:专注于特定领域,就像专业领域的专家,深入挖掘特定主题相关的数据,能提高数据收集的专业性和针对性。
- 按结构和实现技术分类:
- 通用网络爬虫:也称为全网爬虫,是数据采集的主力军,服务于门户站点、搜索引擎和大型 Web 服务提供商等。它从一组初始 URL 集合出发,通过页面爬行与分析、链接过滤等组件执行大规模的数据采集任务,有着广泛的爬行范围和庞大的数据量,对爬行速度和存储空间要求较高,常采用并行工作方式。其工作流程包括提取队列中的 URL、通过 HTTP 请求获取网页内容、解析页面提取纯文本信息并存入数据库,同时识别新链接加入待抓取队列,循环进行直至满足预设停止条件,并且遵循避免重复抓取、遵从 robots TXT 协议以及控制请求频率等基本准则。
- 聚焦网络爬虫:以精准定位特定主题的能力著称,专注于预定主题相关的页面,运用主题相关性分析、链接评估甚至机器学习技术,智能筛选链接,优先访问最有价值的页面,在爬取过程中不断学习和自我调整,以提升抓取精度,确保数据与研究目标紧密关联,特别适用于学术研究、市场分析等需要特定领域数据的场合。
- 深层网络爬虫:也被称作 deep Web 爬虫,是探索互联网中隐藏信息的专家。与表层网页不同,深层网页不通过静态链接直接访问,而是隐藏在搜索表单之后,需提交特定查询才能检索到。这类爬虫的任务是模拟用户行为,通过填写表单和提交查询来访问数据库、在线档案和搜索引擎缓存等宝贵资源,不过面临着处理动态表单、管理 cookies 和跟踪 sessions 等复杂任务,且要在合法性和伦理性前提下工作,在信息检索、知识发现和数据挖掘中发挥着关键作用。
- 分布式网络爬虫:就像是一支团队,每个成员都有自己的任务,协同工作效率极高,能更好地应对大规模数据采集任务,提升整体的数据获取能力。
五、网络爬虫的搜索策略
- 深度优先遍历策略:这是一种早期在爬虫开发中广泛使用的方法,核心目标是尽可能深地探索网络结构,直至达到预期终点。可以将网络想象成错综复杂的迷宫,深度优先搜索就像从迷宫入口开始,沿着一条路径一直走,直到走到尽头,然后回溯寻找另一条路径继续探索,直到所有路径都走完。在 HTML 文件的情境下,当选中一个超链接,就会沿着这个链接指向的 HTML 文件执行深度优先搜索,在搜索其他超链接之前,爬虫会先完整跟踪并搜索这一条单独的链接链。这种策略适合结构清晰、链接层次分明的网站,但属于盲目搜索,可能在深入某个链接链后难以回溯,效率有时较低,不过若要尽可能多覆盖网页,它是不错的选择。
- 广度优先遍历策略:其核心思想是爬虫会首先完成一个层次的搜索,也就是同一层级的所有节点,然后再转移到下一层次,类似探索大楼时先走完所有一楼房间,再去二楼的方式。它也是一种盲目搜索策略,会系统性地彻底搜索整张图,虽然可能导致效率较低,但如果目标是尽可能多覆盖网页,尤其是对于结构相对扁平、包含大量同层次链接的网站,广度优先搜索方法能帮助全面抓取网站内容,确保数据的广泛性。
- Page Rank 策略:基于 Google 创始人开发的 Page Rank 算法,该算法衡量网页重要性,网页的 Page Rank 值由指向它的链接数量和质量共同决定,类似于学术引用的权威性。在爬虫工作中,应用 Partial Page Rank,爬虫会评估已下载网页和待抓取网页的 Page Rank 值,以此决定抓取顺序,优先抓取价值大、信息丰富的网页,能提高抓取效率,不过计算 Page Rank 值需要计算资源,且需适应互联网动态变化,常与其他搜索策略结合使用来优化爬取路径。
- 大站优先策略:依据网站的综合质量来优化抓取顺序,所谓大站,是指那些服务器稳定、结构良好、用户体验出色的网站,它们通常提供丰富权威及时的内容,并且拥有大量的高质量外链。该策略通过按网站级别对 URL 进行排序,先抓取权重高的网站,以及统计每个域名下的待抓取网页数量,优先抓取数量多的域名这两种方式实施,能使爬虫高效分配资源,优先抓取知名、更新频繁的新闻门户网站等,确保数据的丰富性和时效性。
- 反向链接数策略:反向链接数是衡量网页重要性的关键指标,反映了一个网页被其他页面引用的频率,数字越高通常意味着网页内容越有价值或受欢迎,搜索引擎利用这一指标来确定网页抓取的优先级。但现实网络环境复杂,单纯依赖反向链接数评价网页重要性是不足的,还需注重链接的可靠性和质量,权威网站的链接往往更有价值。
- OPIC 策略:全称为 online page importance computation 策略,是 Page Rank 算法的升级版,引入了实时计算网页重要性的能力。起初每个 URL 被赋予相等的初始分值,当爬虫抓取一个网页时,会将该网页的分值均匀分配给所有出链,随后该页面分值归零,在待抓取 URL 列表中,分值最高的 URL 将获得优先抓取权,确保了重要或受欢迎的页面得到优先访问,其实时性使其能迅速适应网页更新变化,更灵活地响应互联网动态性。
六、常用网络爬虫工具
- Google Bot:是谷歌的网页爬取工具,如同不知疲倦的图书管理员穿梭于各个网站之间,利用先进的计算机集群技术,寻找新的和更新的网页,并将有价值的内容精心编排添加到谷歌的索引中,是谷歌搜索引擎的幕后英雄,也是用户获取信息的重要桥梁。谷歌还将其分散部署于众多计算机节点上提升性能,并细化爬取任务,如 Google Bot 专注网页内容全面抓取与索引,Google Bot Mobile 深入探索移动互联网世界,Google Bot image 聚焦图像领域,Media Partners Google 与 Expert Google Bot Google 分别担当媒体合作与广告监测等重任,这些工具协同为谷歌搜索引擎提供全面精准的数据支持。
- 百度蜘蛛:作为百度搜索引擎的核心工具,承担着搜集并存储互联网上海量网页内容的重任,同时也是信息质量的守护者。在爬取策略上,运用深度优先策略挖掘高质量网页,并通过反向链接数策略捕捉网页间引用关系,优先处理被众多网站引用的页面,提升搜索结果的权威性和相关性,其工作流程严谨高效,包括发现 URL、抓取页面、分析页面以及存储数据这四个紧密相连的步骤,形成了高效精准的信息搜集与处理体系,为互联网用户提供丰富、准确、及时的搜索服务。
- 八爪鱼采集器:是一款通用的网页数据智能采集工具,依托自主研发的分布式云计算平台,拥有强大的数据处理能力,能在短时间内跨越复杂网站结构,精准抓取并整理所需数据,还可生成自定义数据格式。它内置丰富的采集模板与拟人化智能算法,无需学习编程,操作简单,小白也能轻松上手。八爪鱼自主研发云采集技术,在全球拥有超 5,000 台服务器,可实现高效大规模获取数据并快速导出或对接至内部系统,在多个领域均有丰富落地案例,获得全球数百万客户好评与信赖,未来还将持续深耕,致力于成为大数据行业基础设施,让数据发挥最大价值。
总之,网络爬虫涉及众多方面的知识和技术,不同类型的爬虫、搜索策略以及工具都有着各自的特点和适用场景,在互联网数据获取与分析等诸多领域都有着广泛应用,随着技术的不断发展,其功能和应用范围也在持续拓展。希望通过本文的科普介绍,能让读者对网络爬虫有更全面、深入的了解。
查看更多
相关文章:
网络爬虫科普:原理、类型、策略与常用工具
网络爬虫科普:原理、类型、策略与常用工具 网络爬虫在当今互联网时代扮演着极为重要的角色,它能帮助我们从海量的网络信息中提取出有价值的数据。以下将从网络爬虫的基本概念、工作流程、类型、搜索策略以及常用工具等方面进行详细科普介绍。 一、网络…...
SQL 实战:动态表创建与多表更新的高级 SQL
在实际的数据库管理和开发中,经常需要临时存储中间计算结果或对多表数据进行批量更新。SQL 提供了动态表创建和多表更新的能力,使复杂业务逻辑能够通过一条 SQL 语句高效完成。本文将介绍如何动态创建临时表和实现多表联动更新,并通过具体示例…...
RabbitMQ基础篇之快速入门
文章目录 一、目标需求二、RabbitMQ 控制台操作步骤1.创建队列2.交换机概述3.向交换机发送消息4.结果分析5.消息丢失原因 三、绑定交换机与队列四、测试消息发送五、消息查看六、结论 一、目标需求 新建队列:创建 hello.queue1 和 hello.queue2 两个队列。消息发送…...
NLP论文速读(NeurIPS 2024)|BERT作为生成式上下文学习者BERTs are Generative In-Context Learners
论文速读|BERTs are Generative In-Context Learners 论文信息: 简介: 本文探讨了在自然语言处理(NLP)领域中,上下文学习(in-context learning)的能力,这通常与因果语言模型&#x…...
LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144744418 相关文章: LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21…...
基于Docker基础与操作实战
6.1 Docker容器简介 Docker是一个开源的应用容器引擎,它基于Go语言并遵从Apache2.0 协议开源。 Docker是一个用于开发,交付和运行应用程序的开放平台。Docker能将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可…...
高转化的Facebook广告文案的秘诀
Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密! 一、广告文案怎么写? 正文:这是帖子的正文,出现在您姓名的正下方。它可…...
支持向量机入门指南:从原理到实践
目录 1 支持向量机的基本概念 1.2 数学表达 2 间隔与支持向量 2.1 几何间隔 2.2 支持向量的概念 2.3 规范化超平面 2.4 支持向量的深入分析 2.4.1 支持向量的特征 2.4.2 支持向量的作用 2.4.3 支持向量的代数表示 2.5 KKT条件 3 最优化问题 3.1 问题的形成 3.2 规…...
汽车打气泵方案|智能充气泵工作原理
汽车打气泵方案最开始是机械式的开发,后来慢慢地演变成由一个气缸、压力传感器和ADC芯片以及主控芯片,就能够使得打气筒具备智能充气功能,摇身一变变成汽车打气泵方案。它具备精准压力检测以及过充过放等功能,利用ADC芯片和压力传…...
Jenkins入门使用
Jenkins入门使用 1先安装jdk才能运行jenkins yum install -y java-1.8.0-openjdk.x86_64 2 安装jenkins,运行,进行端口绑定,启动jenkins docker search jenkins docker pull jenkins/jenkins docker run -d -u root -p 8080:8080 -p 50000:50…...
iOS Masonry对包体积的影响
01 Masonry介绍 Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。 常用接口声明与实现: 使用方式…...
Hive分区再分桶表
在Hive中,数据通常是根据分区(partition)来组织的,但是对于大数据集,单层分区可能不够用,因此可以进一步细分为桶(bucket)。桶可以用于提供额外的并行处理和优化查询性能。在这种情况…...
三大行业案例:AI大模型+Agent实践全景
本文将从AI Agent和大模型的发展背景切入,结合51Talk、哈啰出行以及B站三个各具特色的行业案例,带你一窥事件驱动架构、RAG技术、人机协作流程,以及一整套行之有效的实操方法。具体包含内容有:51Talk如何让智能客服“主动进攻”&a…...
国产低代码框架zdppy开发笔记002 标准的接口响应
前言 通过前面的学习, 我们已经知道了zdppy_api和zdppy_req的基本用法, 接下来我们会在学习中多次用到这两个框架. 我们已经知道了该如何响应一个字符串,但是我们该如何响应json数据呢? 在zdppy_api中,我们定义了一组规范的API响应, 我们慢慢来看看. 规范的响应 首先来看…...
关于Nginx
1.Nginx的配置 proxy_pass http: 当你需要将请求分发到多个后端服务器时,需要实现负载均衡功能,可以使用upstream指令定义一组服务器,并在proxy_pass中引用这个服务组名称。。如果不需要负载均衡,只需要将请求转发到单一的后端…...
数据库实时会话管理,性能问题诊断后的临门一脚
目录 前言 实时会话管理 DBdoctor 实时会话功能 1.实时会话列表 2.结束会话 3.操作历史 4.SQL分析 结语 前言 在之前的文章中我们介绍了DBdoctor性能洞察功能,它能够快速量化数据库连接会话单条SQL的资源消耗,实现性能问题快速根因定位并给出优…...
以EM算法为例介绍坐标上升(Coordinate Ascent)算法:中英双语
中文版 什么是 Coordinate Ascent 算法? Coordinate Ascent(坐标上升)是一种优化算法,它通过在每次迭代时优化一个变量(或一个坐标),并保持其他变量不变,逐步逼近最优解。与坐标下…...
visual studio连接sql server数据库
目录 1、为什么要建立连接2、在sql server中建立数据库3、visual studio连接sql server数据库4、学生信息管理系统页面布局5、添加事件逻辑 5.1 页面跳转5.2 读取学生信息5.3 查询学生信息5.4 修改学生信息5.5 删除学生信息5.6 添加学生信息 bilibili演示视频 github源码 1、…...
磁盘的相关操作
1.让U盘连接到虚拟机中 两种方法:1>在弹出的窗口中设置 2>通过选项设置 菜单栏---->虚拟机----->可移动设备---->找到U盘名---->连接到虚拟机中 2.查看U盘是否已被成功识别 方法:ls /dev/sd* 显示包含除了sda外的文件说明U盘连接成功…...
数据结构与算法Python版 图的应用与广度优先搜索
文章目录 一、图的应用-词梯问题二、图的广度优先搜索 一、图的应用-词梯问题 词梯问题 Word Ladder 从一个单词演变到另一个单词,其中的过程可以经过多个中间单词。要求是相邻两个单词之间差异只能是1个字母如FOOL变SAGE:FOOL >> POOL >>…...
Unity——InputField组件自动换行和enter键换行
文章目录 输入框实现换行功能 输入框实现换行功能 在Unity中,如果你想要在输入框(如InputField)中实现换行功能 ,你需要确保以下几点: 1、文本组件支持多行: 确保你的InputField的文本组件(Te…...
solr9.7 单机安装教程
1.环境要求:jdk11以上 2.下载wget https://dlcdn.apache.org/solr/solr/9.7.0/solr-9.7.0.tgz 3.解压 4.修改solr.in.sh配置 5.启动命令 bin/solr start 6.创建core bin/solr create -c <core名称> 注意:用solr ui界面创建,会提示找不到solrconfig.xml和m…...
虚幻引擎UE5渲染不够快的解决办法
虚幻引擎是由Epic Games公司开发的一款功能强大、全球最开放且先进的实时 3D 创作工具,广泛应用于游戏、影视、建筑可视化、虚拟现实等多个领域!虚幻引擎UE5如何实现在网上极速渲染呢?本文提供云渲染和云电脑两套方案用于渲染提速ÿ…...
基于STM32的智能家居环境监控系统设计
目录 引言系统设计 硬件设计软件设计系统功能模块 环境监控模块控制模块显示模块系统实现 硬件实现软件实现系统调试与优化结论与展望 1. 引言 随着智能家居技术的发展,环境监控系统已经成为家居管理的重要组成部分。智能家居环境监控系统通过实时监测室内温度、湿…...
Android service framework笔记
1. 网络摘录如何添加一个Application Framework Service(一)(without native code) 如何添加一个Application Framework Service(二)(with native code) 2.书籍摘录...
【图像处理lec10】图像压缩
目录 一、图像压缩基础 1、图像压缩的基本概念 2、数据冗余与压缩比 3、三种主要的数据冗余类型 4、保真度评估标准(Fidelity Criteria) 5、应用与实践 二、图像压缩模型 1、图像压缩模型概述 (1)压缩系统的结构 &#…...
flask后端开发(2):URL与视图
目录 URL定义request获取请求参数 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git URL定义 from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello World!app.route(/profile) def profile():return 我是个人…...
Linux Ubuntu24配置安装Java
目录 一. 通过apt安装java1.1 列出所有可用java版本1.2 安装指定java版本1.3 安装后确认1.4 /etc/alternatives/目录 二. 手动安装java 一. 通过apt安装java 1.1 列出所有可用java版本 apt list openjdk-*jdk apluserubuntu24-01:~$ apt list openjdk-*jdk Listing... Done …...
线段树例题题解
卫星覆盖(NOI1997) 题面: SERCOI(Space-Earth Resource Cover-Observe lnstitute) 是一个致力于利用卫星技术对空间和地球资源进行覆盖观测的组织。现在他们研制成功一种新型资源观测卫星 -SERCOI-308。这种卫星可以…...
极品飞车6的游戏手柄设置
极品飞车,既可以用键盘来控制车辆的前进、后退、左转、右转、加速与减速,也可以使用游戏手柄来操作车辆的运行。需要注意的是,极品飞车虽然支持手柄,但是仅支持常见的北通、罗技还有部分Xbox系列的手柄,至于其他的PS4手…...
为何DeepSeek V3模型为自己是ChatGPT?
DeepSeek V3 AI模型:为何它认为自己是ChatGPT? 引言 在人工智能领域,最新的技术进展总是令人兴奋。最近,一家资金雄厚的中国AI实验室DeepSeek发布了一款新的AI模型——DeepSeek V3,它在多个流行基准测试中超越了许多…...
【每日学点鸿蒙知识】人脸活体检测、NodeController刷新、自动关闭输入框、Row设置中间最大宽、WebView单例
1、HarmonyOS 人脸活体检测调用? H5调用应用侧方法可参考以下demo: index.ets Web()//注册方法.javaScriptProxy({object: this.testObj,name: "testObjName",methodList: ["getLocationTS"],controller: this.webController})cla…...
深入理解Composer自动加载机制
Composer是PHP生态系统中最常用的依赖管理工具之一,它不仅能够帮助开发者管理项目的依赖关系,还能够自动加载这些依赖项。自动加载机制是Composer的核心功能之一,通过自动加载,开发者可以在运行时按需加载所需的类和文件ÿ…...
SQL SERVER日常运维巡检系列之-日志
前言 做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。 本系列旨在解决一些常见的困扰: 不知道巡检哪些东西不知道怎么样便捷体检机器太多体检麻烦生成报告困难,无…...
2024年中国新能源汽车用车发展怎么样 PaperGPT(二)
用车趋势深入分析 接上文,2024年中国新能源汽车用车发展怎么样 PaperGPT(一)-CSDN博客本文将继续深入探讨新能源汽车的用车强度、充电行为以及充电设施的现状。 用车强度 月均行驶里程:2024年纯电车辆月均行驶超过1500公里&…...
【数据结构】线性数据结构——链表
1. 定义 链表是一种线性数据结构,由多个节点(Node)组成。每个节点存储数据和指向下一个节点的指针。与数组不同,链表的节点不需要在内存中连续存储。 2. 特点 动态存储: 链表的大小不固定,可以动态增加或…...
Spring中的设计模式
Spring中的设计模式 控制反转(IoC)和依赖注入(DI) IoC 是一个原则,而不是一个模式,以下模式(但不限于)实现了 IoC 原则。 **Spring IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置…...
微信小程序给外面的view设置display:flex;后为什么无法给里面的view设置宽度
如果父盒子view设置了display:flex,子view设置宽度值无效,宽度值都是随着内容多少而改变: 问题视图: 原因: flex布局元素的子元素,自动获得了flex-shrink的属性 解决方法: 给子view增加:fl…...
异步爬虫之aiohttp的使用
在上一篇博客我们介绍了异步爬虫的基本原理和 asyncio 的基本用法,并且在最后简单提及了使用aiohttp 实现网页爬取的过程。本篇博客我们介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio模块,其内部实现了对 TCP、UDP、SSL协议的异步操作&a…...
vue3大屏实现;使用使用CSS Grid实现大屏
文章目录 一、效果1.效果2.使用CSS Grid3.插件4.html代码5.index.scss代码 一、效果 1.效果 方案:采用CSS的Grid布局,实现首页大屏模块划分和自适应功能; 布局: 大屏主要内容,高宽比是1920*1080;即16:9的…...
安卓入门二 Kotlin基础
Kotlin Kotlin的历史 Kotlin由Jet Brains公司开发设计,2011年公布第一版,2012年开源。 2016年发布1.0正式版,并且Jet Brains在IDEA加入对Kotlin的支持,安卓自此又有新的选择。 2019年谷歌宣布Kotlin成为安卓第一开发语言&#x…...
在ubuntu上如何使用sdkman安装两个版本的java并进行管理和维护
在Ubuntu上使用SDKMAN安装和管理两个不同版本的Java的步骤如下: 安装SDKMAN 打开终端,使用以下命令安装SDKMAN: curl -s "https://get.sdkman.io" | bash这个命令会下载并运行SDKMAN!的安装脚本。 安装完成后,需要打开…...
《代码随想录》Day20打卡!
《代码随想录》二叉树:二叉搜索树的最近公共祖先 本题的完整题目如下: 本题的思路如下: 1.之前写过一个二叉树的最近公共祖先,本题相比于另一道题,不同是本题是二叉搜索树,有一些可用的性质。 2.本题使用递…...
GPIO相关寄存器,点灯
目录 一.输入模式 1.浮空输入 2.上拉输入 3.下拉输入 4.模拟输入 二.输出模式 1.推挽输出 2.开漏输出 三.寄存器 1.寄存器的作用 2.功能与类型 3.控制某一引脚输出电压来点灯所需要控制的寄存器 1.打开对应时钟开关 2.端口模式寄存器 ---输出模式 3.输出类型寄存…...
25 - GRACE Mascon数据缺失月份数据插值
25 - GRACE Mascon数据缺失月份数据插值 0 引言1 程序包获取1.1 获取ssa插值算法程序包1.2 try2 利用ssa对grace mascon数据进行插值3 完整代码及相关函数3.1 Main程序3.1 子程序4 总结0 引言 💦💦💦💦💦 上篇介绍了grace mascon数据提取及简单的分析过程,仔细…...
深入理解Redis:从理论到实践的Java之旅
Redis,这个开源的内存数据结构存储系统,自2009年诞生以来,凭借其丰富的数据结构、快速的读写性能以及高度的可扩展性,迅速成为了分布式系统和高并发应用中的明星组件。本文将带你深入理解Redis,并通过Java语言的实践示…...
REDIS的集群
REDIS的集群模式: 主从模式:redis高可用的基础,哨兵和集群都是建立在此基础之上 特点: 主从模式和数据库的主从模式(工作模式)是一样的,主负责写入,然后把写入到数据同步到从&…...
linux——vi命令常用操作
一、vi模式 vi一般分为三种模式,分别是命令行模式、插入模式、末行模式 1.命令模式:控制屏幕光标的移动,按 :进入末行模式,按 i(其他插入命令也可) 进入插入模式; 2.插入模式&…...
SKETCHPAD——允许语言模型生成中间草图,在几何、函数、图算法和游戏策略等所有数学任务中持续提高基础模型的性能
概述 论文地址:https://arxiv.org/pdf/2406.09403 素描是一种应用广泛的有效工具,包括产生创意和解决问题。由于素描能直接传达无法用语言表达的视觉和空间信息,因此从古代岩画到现代建筑图纸,素描在世界各地被用于各种用途。儿童…...
计算机网络•自顶向下方法:网络应用原理
网络应用原理 网络应用架构 目前有两种主流的网络应用架构: 客户-服务器架构(Client-server) 服务器(server): 有一台总是在线的主机,上面运行着服务器程序(server)服务器主机(server machine)具有永久的…...