网络爬虫和前端相关知识
一 爬虫发展历史,概念与反爬机制
(一)爬虫发展历史
- 早期爬虫(1990s)
- 起源 :早期的爬虫主要是为了构建搜索引擎。
- 典型案例: Yahoo!人工目录 → 谷歌PageRank算法驱动的自动化爬虫。
- 功能特点 :这些爬虫的功能比较单一,主要以抓取网页的文本内容为主,采用简单的广度优先或深度优先的策略遍历网页链接。对网页的分析也基本是基于文本关键词匹配。
- 传统爬虫(2000s - 2010年左右)
- 技术进步 :随着互联网的发展,网页数量急剧增加,企业级爬虫兴起(如Heritrix),聚焦垂直领域数据采集,出现分布式爬虫框架。同时,数据存储技术的发展使得爬虫可以将抓取的数据存储到关系型数据库等多种存储介质中。
- 技术突破: 多线程、代理IP池、动态页面解析。
- 应用拓展 :除了搜索引擎,爬虫开始被用于一些商业应用,对爬虫的精度和效率提出了更高的要求。
- 现代爬虫(2010s至今)
- 应对反爬技术 :由于网站为了保护自身数据和服务器资源,设置了各种反爬措施,催生Headless浏览器(如Puppeteer)、AI验证码识别等技术。例如,出现了模拟浏览器行为的爬虫,能够处理JavaScript动态渲染的网页;还有分布式爬虫,通过多台机器协同工作来提高爬取效率,并降低被封禁的风险。
- 大数据应用 :爬虫成为大数据时代数据收集的重要手段之一。它可以抓取社交媒体、电商、新闻等多种来源的数据,为数据分析、机器学习等提供海量的数据支持。同时,爬虫技术也面临着法律和道德的挑战,需要在合法合规的前提下进行数据收集。
(二)爬虫概念
- 爬虫定义:通过模拟HTTP请求自动获取并解析、提取和存储网页数据的程序。
- Robots协议: robots.txt文件定义爬虫访问规则(非强制,但需遵守行业伦理)。
- 数据边界:合法爬取公开数据,禁止入侵授权访问内容(如密码保护页面)。
- 网络爬虫是获取网络数据的重要工具,广泛应用于搜索引擎、数据分析、人工智能训练数据收集等领域。
(三)反爬机制
反爬手段 | 应对策略 | 代码示例 |
---|---|---|
User-Agent检测 | 随机切换UA伪装浏览器 | headers = {'User-Agent': '“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36”'} |
IP频率限制 | 使用代理IP池(如Scrapy-Proxy) | requests.get(url, proxies={'http': 'ip:port'}) |
验证码拦截 | OCR识别(Tesseract)或打码平台接入 | pytesseract.image_to_string(captcha_img) |
动态加载数据 | 渲染JavaScript(Selenium/Playwright) | driver.execute_script("return data") |
请求参数加密 | 逆向JS分析加密逻辑 | 使用PyExecJS解析加密算法 |
- 基于浏览器特征的反爬
- 原理 :网站会检查请求的浏览器特征,如User - Agent、浏览器的Accept - Encoding、Accept - Language等头部信息。如果这些信息不符合正常浏览器的特征,或者存在不一致的情况,服务器可能会拒绝请求。
- 基于访问频率的反爬
-
原理 :网站服务器会监测同一IP地址或同一用户代理(User - Agent)在单位时间内的访问请求数量。如果访问频率过高,服务器会认为这是爬虫的行为,可能会拒绝后续的请求或者将该IP地址暂时封禁。
-
应对方法 :爬虫可以通过设置合理的访问间隔时间,模拟真实的用户访问行为。例如,设置每秒只发送1 - 2个请求,或者采用随机的时间间隔。同时,可以使用代理IP池,通过切换不同的IP地址来避免因访问频率过高而被封禁。
- 基于验证码的反爬
-
原理 :当网站检测到异常访问行为时,会弹出验证码要求用户验证。验证码可以是数字字母组合、图形验证码等。验证码的目的是区分人和机器,因为目前大多数爬虫很难准确识别验证码。
-
应对方法 :对于简单的数字字母验证码,可以通过OCR(光学字符识别)技术进行识别。但对于复杂的图形验证码,如扭曲的字符、带有干扰线的验证码,识别的准确率可能会降低。在这种情况下,可以使用打码平台(需要付费)来帮助识别验证码,或者尝试通过模拟正常用户行为来避免触发验证码。
- 基于JavaScript动态渲染的反爬
-
原理 :现代网页很多内容是通过JavaScript动态加载的。一些网站会将关键数据放在JavaScript渲染后的页面中,并且对爬虫访问JavaScript资源进行限制。如果爬虫无法正确执行JavaScript,就无法获取这些数据。
-
应对方法 :可以使用支持JavaScript渲染的爬虫框架,如Selenium、Puppeteer等。这些工具通过模拟真实的浏览器环境来执行JavaScript,获取动态渲染后的网页内容。
二、网络信息传输过程,HTTP与Cookie的概念与作用
(一)网络信息传输过程
- 用户请求发起
- 当用户在浏览器地址栏输入网址(如https://www.example.com)并按下回车键,或者点击网页上的链接时,浏览器会根据URL中的协议(如HTTP或HTTPS)来确定如何发送请求。
- DNS解析
- 浏览器会先进行DNS(Domain Name System,域名系统)解析,将网址中的域名(如example.com)转换为IP地址。这是因为计算机在网络中通信是基于IP地址的。DNS服务器会查找域名对应的IP地址,并将结果返回给浏览器。
- 建立TCP连接
- 在获取到目标服务器的IP地址后,浏览器会与服务器建立TCP(Transmission Control Protocol,传输控制协议)连接。TCP连接的建立过程包括三次握手,确保双方可以可靠地通信。这个过程主要是为了保证数据传输的可靠性和有序性。
- 发送HTTP请求
- 一旦TCP连接建立成功,浏览器会按照HTTP协议的格式向服务器发送请求。HTTP请求包括请求行(如GET / HTTP/1.1)、请求头部(如Host、User - Agent、Accept等)、请求体(对于POST请求可能有请求体,如表单数据)和空行。
- 服务器处理并返回HTTP响应
- 服务器收到HTTP请求后,会根据请求的内容进行处理。例如,服务器会查找请求的资源(如网页文件)并生成相应的响应。HTTP响应包括状态行(如HTTP/1.1 200 OK)、响应头部(如Content - Type、Content - Length等)、响应体(如网页的HTML内容)和空行。然后服务器将响应通过TCP连接发送回浏览器。
- 断开TCP连接
- 浏览器收到HTTP响应后,会根据需要断开TCP连接。如果是HTTP/1.1协议,并且没有设置连接超时等参数,可能会保持连接一段时间,以便复用连接发送后续的请求。
- 浏览器渲染网页
- 浏览器收到网页的HTML内容后,会解析HTML内容并构建DOM(Document Object Model,文档对象模型)树。同时,浏览器还会根据HTML中的链接下载网页的其他资源,如CSS文件、JavaScript文件、图像等。然后浏览器会按照网页的布局和样式规则进行渲染,将网页内容呈现给用户。
(二)HTTP概念与作用
- 概念
- HTTP(HyperText Transfer Protocol,超文本传输协议)是用于从服务器传输超文本(如HTML文档、图像、视频等)到本地浏览器的传输协议。它是万维网(WWW)的基础协议,工作在OSI模型的应用层。 HTTP是一个无状态的协议,即服务器在处理完一个请求后,不会记录任何关于该请求的信息,每个请求都是独立的。
- 作用
-
请求 - 响应模式 :HTTP采用请求 - 响应模式进行通信,请求方法如下:
-
GET
:获取资源(参数在URL中,如page=2
) -
POST
:提交数据(参数在请求体,如登录表单)
-
-
状态码:
-
200 OK: 成功
-
403 Forbidden: 无权限访问
-
404 Not Found:网页不存在
-
503 Service Unavailable:服务器过载
-
-
超文本传输 :HTTP可以传输各种类型的超文本内容,如HTML、XML、JSON等。这使得它可以支持丰富的网页内容和数据格式,方便构建各种网络应用。
-
资源定位与访问 :通过URL(Uniform Resource Locator,统一资源定位符),HTTP可以定位互联网上的资源。URL包含了协议、主机名、端口号、路径等信息,使得客户端能够准确地访问服务器上的特定资源。
(三)Cookie概念与作用
- 概念
- Cookie是服务器发送到用户浏览器并存储在浏览器中的小块数据。它以键值对的形式存在,通常用于存储用户会话信息。当浏览器再次向服务器发送请求时,会自动将对应的Cookie包含在HTTP请求中。Cookie可以在客户端(浏览器)和服务器之间保持状态信息。
- 作用
-
爬虫管理:
import requestssession = requests.Session() # 自动管理Cookiesession.post(login_url, data=credentials) # 登录后Cookie自动保存response = session.get(protected_page) # 携带Cookie访问
-
会话跟踪 :Cookie的主要作用之一是用于会话跟踪。例如,当用户登录一个网站后,服务器会在响应中设置一个包含会话ID的Cookie。浏览器在后续请求中发送这个Cookie,服务器通过会话ID识别用户的身份,从而保持用户的登录状态。这样用户在浏览网站的不同页面时,不需要每次都要重新登录。
-
个性化设置存储 :网站可以使用Cookie来存储用户的个性化设置,如语言偏好、页面布局等。当用户再次访问网站时,网站可以根据Cookie中的信息为用户提供代码,提供账号,提供更个性化的服务。
-
数据收集与分析 :一些网站利用Cookie来收集用户的行为数据,用于网站流量统计和分析。例如,通过分析用户访问的页面、访问时间等信息,网站可以了解用户的兴趣和行为模式,从而优化网站内容和广告投放策略。
三、爬虫环境、爬虫基本流程与网页前端知识
(一)爬虫环境
- 基础工具链:
-
Python + Requests/Scrapy
-
浏览器开发者工具(Network/XPath定位)
-
数据库(MySQL/MongoDB存储数据)
- 编程语言选择
- Python :Python是目前最常用的爬虫编程语言之一。它有丰富的库和框架来支持爬虫开发,如urllib、requests用于发送HTTP请求,BeautifulSoup、lxml用于解析HTML内容,Scrapy是一个功能强大的开源爬虫框架。Python的语法简洁,开发效率高,适合快速构建爬虫应用。
- Java :Java也有相关的爬虫库,如Apache HttpClient用于发送HTTP请求,Jsoup用于解析HTML。Java的优势在于它具有良好的跨平台性和强大的性能,适合构建大型、高效的爬虫系统。
- JavaScript/Node.js :在一些特殊场景下,如需要处理大量JavaScript动态渲染网页时,可以使用JavaScript和Node.js。例如,使用Puppeteer或Selenium等工具来控制浏览器进行爬虫操作。
- 开发工具
- 文本编辑器/IDE :如VS Code(Visual Studio Code)、PyCharm(主要用于Python开发)等。这些工具提供了代码编辑、调试、语法高亮等功能,方便爬虫代码的编写和调试。
- 浏览器开发者工具 :用于分析网页的HTML结构、查看网络请求和响应、调试JavaScript等。在爬虫开发过程中,通过浏览器开发者工具可以了解目标网页的资源加载情况、请求参数等信息,为爬虫的开发提供重要的参考。
- 依赖库和框架
- 请求库 :如Python的requests库,它简化了HTTP请求的发送过程。可以方便地设置请求头部、处理重定向、管理Cookies等。例如,通过requests.get()方法可以轻松地获取网页内容。
- 解析库 :如BeautifulSoup和lxml,它们用于解析HTML和XML文档。BeautifulSoup提供了简单的接口来查找、提取网页中的数据,而lxml在处理大规模HTML文档时性能更高。例如,可以使用BeautifulSoup的find()和find_all()方法来查找网页中的特定标签。
(二)爬虫基本流程
- 爬虫标准流程
相关文章:
网络爬虫和前端相关知识
一 爬虫发展历史,概念与反爬机制 (一)爬虫发展历史 早期爬虫(1990s)起源 :早期的爬虫主要是为了构建搜索引擎。典型案例: Yahoo!人工目录 → 谷歌PageRank算法驱动的自动化爬虫。功能特点 :这些爬虫的功能比较单一,主要以抓取网页的文本内容为主,采用简单的广度优先…...
山东科技大学人工智能原理考试回忆复习资料
全部资料:https://mbd.pub/o/around_01 考试回忆版 简答题 人工智能定义 图灵测试基本思想 人工智能主要研究领域写八个以上 专家系统是什么及其特点 遗传算法流程图 综合题 语义网络表示 书上习题 证明S不满足性 用归结原理求问题 谁说真话假话的 书上例题…...
单元测试的一般步骤
Qt Test Qt Test 是 Qt 开发人员发布的一个单元测试框架,用于测试基于 Qt 框架的应用程序或库。它提供了单元测试框架中常见的所有功能以及用于测试图形用户界面的扩展。 1.自动化测试包络ui测试>接口测试>单元测试;现问如何使用Qt进行单元测试&…...
c++题目_P1443 马的遍历
P1443 马的遍历 # P1443 马的遍历 ## 题目描述 有一个 $n \times m$ 的棋盘,在某个点 $(x, y)$ 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。 ## 输入格式 输入只有一行四个整数,分别为 $n, m, x, y$。 ## 输出格式 …...
并发网路通信-套接字通信
套接字通信就是网络通信 在网络通信时,客户端和服务器的比例是N:1 服务器如何处理多个客户端的请求 并发处理方式 1.多线程并发处理->线程池并发处理,线程池可以对多个线程进行管理 2.多进程->进程池 3.io多路转接,使用select或者epoch进行处理,使用io转接函数…...
STM32N6如何调试下载代码
关键词:STM32N6、调试代码、开发者模式、外部Flash模式 文章目录 前言一、开发者模式调试1.1 CubeIDE调试1.2 IAR调试 二、如何下载代码(外部FLASH模式)2.1 准备工作2.2 编译下载2.2.1 Appli编译头文件下载2.2.2 FSBL编译头文件下载 2.3 运行…...
【2025】Datawhale AI春训营-蛋白质预测(AI+生命科学)-Task2笔记
【2025】Datawhale AI春训营-蛋白质预测(AI生命科学)-Task2笔记 本文对Task2使用的代码进行理解。 任务描述 Task2的任务仍然是通过对反应中包含的蛋白质残基信息,运用深度学习模型构建蛋白质3D结构的隐式模型,从而达成准确预测…...
Python基于知识图谱的医疗问答系统【附源码、文档说明】
博主介绍:✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&…...
Unreal 从入门到进阶 之 如何实现Pixel Streaming
文章目录 前言核心概念工作原理主要应用场景Pixel Streaming和Pixel Streaming2部署准备编辑器推流打包推流最后前言 Unreal Engine 5 (UE5) 的 Pixel Streaming 是一项基于云端的实时流媒体技术,允许将 UE5 应用的高质量图形渲染结果通过 WebRTC 协议传输到用户的浏览器或轻…...
作业2 CNN实现手写数字识别
# 导入必要库 import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 用于高级可视化 from tensorflow import keras from tensorflow.keras import layers from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import time # 用于…...
Linux驱动开发--阻塞、非阻塞I/O
2. 阻塞、非阻塞I/O IO 指的是 Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将应用程序对应的线程挂起,直到…...
运筹学之模拟退火
目录 一、历史二、精髓思想三、案例与代码实现 一、历史 问:谁在什么时候提出模拟退火?答:模拟退火算法(Simulated Annealing,SA)是由斯图尔特柯尔斯基(Scott Kirkpatrick) 等人在 …...
JavaScript 的演变:2023-2025 年的新特性解析
随着Web技术的飞速发展,ECMAScript(简称ES)作为JavaScript的语言标准,也在不断进化。 本文将带你学习 ECMAScript 2023-2025 的新特性。 一、ECMAScript 2023 新特性 1.1 数组的扩展 Array.prototype.findLast()/Array.protot…...
CSS继承
CSS继承 CSS继承是一种机制,允许子元素自动继承父元素的某些样式属性,从而减少重复代码。 以下是一些常见的具有继承性的CSS属性: color : 文字颜色 font-family : 字体族名称 font-size : 字体大小 font-weight &am…...
游戏引擎学习第236天:GPU 概念概述
回顾并展望通过视频采集卡进行流媒体传输的未来 昨天,我们迈出了大胆的一步,决定初始化硬件的 3D 加速,因为我有点厌倦了我们的游戏没有垂直同步(vsync)。如今,在 Windows 上,我找不到一种可靠…...
HFSS3(limy)——建模学习记录
前言——笔者使用的是21版HFSS 1.基本模型 为什么没有环形的天线 2.创建基本模型方法 常用:先粗略建好模型再编辑输入准确坐标和大小尺寸(这里长方体起始点是左上角下方的点,也就是说要输入模型起点相对于坐标原点的位置尺寸就可以确定具体…...
php实现zip压缩
可以使用ZipArchive类来创建ZIP压缩文件。ZipArchive是PHP内置的一个类,提供了创建、打开、读取、写入和关闭ZIP文件的功能。 示例:压缩单个文件 <?php$fileToZip path/to/your/file.txt; $zipFileName compressed.zip;$zip new ZipArchive(); …...
【STM32单片机】#10 USART串口通信
主要参考学习资料: B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接:https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装:STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…...
goc命令大全
颜色0黑1红2蓝3浅绿4浅蓝5淡黄6棕7深蓝8灰9粉10深绿11紫12蓝绿13黄14橙15白 绘图命令功能pen笔.fd()前进.rt()右转.c()颜色.up()抬笔.o(,)圆.e(,)椭圆.r(,,)长方形.picL(,)调图片.text(,,)文字.hide()隐藏.moveTo(,)移动wait();等待.soundL()调声音pause();暂停 绘图命令功能…...
Linux | 软件仓库管理
一. 软件包 1.1 软件包的分类 DEB:主要用于基于 Debian 的系统,如 Ubuntu。这种软件包格式具有良好的依赖管理机制,方便用户安装、升级和卸载软件。RPM:广泛应用于 Red Hat、CentOS、Fedora 等系统。RPM 包将软件打包成一个文件…...
Python实现对目标Word文档进行自动化排版【4万字精讲】(14)
前言 本文是该专栏的第14篇,后面会持续分享Python办公自动化干货知识,记得关注。 注意:本文涵盖4万字以及实战操作代码的精讲攻略,带你轻松掌握一键式“文档自动化排版”程序功能。 如果说当你在工作项目中,遇到这样的需求,需要如何处理——假设,现在有大批量的docx格…...
LeetCode每日一题4.19
2563. 统计公平数对的数目 题目 问题分析 输入:一个整数数组 nums 和两个整数 lower 和 upper。 输出:返回满足条件的公平数对的数目,即对于所有 0 < i < j < n,lower < nums[i] nums[j] < upper 的数对 (i, j)…...
Spring AI 开发 - 快速入门
先看效果 项目搭建 Spring AI 是 Spring 推出的一个项目,目标是提供统一的API抽象层,屏蔽不同AI模型和服务的底层差异,实现跨平台兼容性。 演示使用的模型是阿里的 qwq-32b。 环境要求: JDK :17以上(包括…...
leetcode哈希表(六)-三数相加
题目 15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复…...
Photoshop安装与配置--简单攻略版
下载地址:Photoshop软件工具下载 安装完成后,即可运行Photoshop.exe;打开工具页面后,按照下面简单配置即可 1.编辑-》首选项-》常规 或者直接快捷键CtrlK 暂存盘:一定要设置为非C盘 2.性能 3.文件处理 以上配置比较基础…...
一个 CTO 的深度思考
今天和一些同事聊了一会,以下是我的观点 我的观点,成年人只能筛选,不能培养在组织中,应该永远向有结果的人看齐。不能当他站出来讲话的时候,大家还要讨论讨论,他虽然拿到结果了,但是他就是有一…...
Java:使用Maven构建项目无src解决方案
创建箭头所指的包和类以及yml文件: 类中: package com.itheima;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class BigEventApplication …...
Git 命令速查手册
听说用美图可以钓读者? 一、基础操作核心命令 1. 仓库初始化与克隆 命令作用示例git init创建新仓库git init my-projectgit clone克隆远程仓库git clone [https://github.com/user/repo.git](https://github.com/user/repo.git)git remote add关联远程仓库git re…...
office软件中word里面的编号库和列表库功能
在Microsoft Word中,编号库和列表库是两大核心排版工具,分别服务于不同层级的文档结构化需求。以下从功能定义、核心差异、应用场景及操作技巧等维度进行详细解析: 一、编号库(Numbering Library) 1. 定义与功能 编号库是Word中预设或用户自定义的有序列表格式集合,用于…...
C++入门七式——模板初阶
目录 函数模板 函数模板概念 函数模板格式 函数模板的原理 函数模板的实例化 模板参数的匹配原则 类模板 类模板的定义格式 类模板的显式实例化 当面对下面的代码时,大家会不会有一种无力的感觉?明明这些代码差不多,只是因为类型不…...
Python+Selenium+Pytest+POM自动化测试框架封装(完整版)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、测试框架简介 1)测试框架的优点 代码复用率高,如果不使用框架的话,代码会显得很冗余。可以组装日志、报告、邮件等一…...
matlab 处理海洋数据并画图的工具包--ocean_data_tools
matlab 处理海洋数据并画图的工具包–ocean_data_tools matlab 处理海洋数据并画图的工具包–ocean_data_tools ocean_data_tools 简化了提取、格式化和可视化免费可用的海洋学数据的过程。虽然可以在线访问大量海洋学数据,但由于获取这些数据并将其格式化为可用数据…...
软件开发指南——GUI 开发方案推荐
1. LVGL (Light and Versatile Graphics Library) 适用场景:嵌入式设备、资源受限环境 优势: 专为嵌入式设计的开源 GUI 库,内存占用极小(最低仅需 64KB RAM)支持触摸屏、硬件加速(如 STM32 的 LTDC&…...
JDK8 HashMap的实现原理
一 HashMap底层存储结构 HashMap底层结构采用(数组)(链表 or 红黑树)的形式来存储节点。 首先HashMap是一个数组,而且数组里面每个位置可以放入多个元素,形象一点,咱们把数组的这些个位置称为桶…...
YOLO拓展-锚框(anchor box)详解
一.锚框(anchor box)概述 1.1什么是锚框 锚框就是一种进行预测的像素框,通过遍历输入图像上所有可能的像素框,然后选出正确的目标框,并对位置和大小进行调整就可以完成目标检测任务。 对于yolo锚框的建设须基于实际…...
U-Boot(Universal Bootloader)简介
U-Boot 是一种开源的、高度可定制的 引导加载程序(Bootloader),专为嵌入式系统和特定硬件平台设计。它负责在设备上电后初始化硬件、加载操作系统内核,并将控制权移交给操作系统,是嵌入式设备启动过程中不可或缺的核心…...
turtle库绘制进阶图形
要求: 1.绘制嵌套彩色五角星(大小逐层递减) 2. 设计函数绘制自定义正多边形(边数与颜色参数化) 3. 扩展:实现动态旋转花瓣图案 代码: import turtledef draw_nested_star():colors ["…...
[matlab]南海地形眩晕图代码
[matlab]南海地形眩晕图代码 请ChatGPT帮写个南海地形眩晕图代码 图片 图片 代码 .rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: n…...
3. 进程概念
目录 1. 冯诺依曼体系结构 2. 操作系统 3. 理解进程的一般思路 4. 查看进程 5. fork初识 6. 进程状态 6.1 一般操作系统 6.2 Linux系统是怎么维护进程状态的 7. 进程优先级 先谈硬件-再谈软件-最后谈进程。 1. 冯诺依曼体系结构 我们常见的计算机(笔记本电…...
yolov8的数据处理lableimg的安装以及使用
视频数据集准备 video cv2.VideoCapture("./BVN.mp4") num 0 # 计数器 save_step 30 # 间隔帧 while True:rel, frame video.read()if not ret:breaknum 1if num % save_step 0:cv2.imwrite("./demo images/" str(num) ".jpg", frame)l…...
小刚说C语言刷题——1035 判断成绩等级
1.题目描述 输入某学生成绩,如果 86分以上(包括 86分)则输出 VERY GOOD ,如果在 60到 85之间的则输出 GOOD (包括 60和 85),小于 60 的则输出 BAD。 输入 输入只有一行,包括 1个整数。 输出 输出只有一行…...
Spring 依赖冲突解决方案详解
引言 在Spring框架中,依赖管理是一个核心功能,它使得开发者能够轻松地管理应用程序中的各种组件和服务。然而,随着项目的增长和复杂度的增加,依赖冲突问题也变得日益常见。本文将详细介绍Spring中不同类型的依赖冲突及其解决方法…...
P11299 [NOISG 2021 Finals] Fraud 题解
题目背景 你被任命为第 24 届全国信息学奥林匹克竞赛的负责人! 题目描述 本次竞赛共有 N 名参赛者和 2 轮比赛。第 i 名参赛者在第一轮获得了分,在第二轮获得了 分。 每轮比赛分别有一个正整数权重 X 和 Y。第 i 名参赛者的最终得分 计算公式为&a…...
AI时代下 你需要和想要了解的英文缩写含义
在AI智能时代下,越来愈多的企业都开始重视并应用以及开发AI相关产品,这个时候都会或多或少的涉及到英文,英文还好,但是如果是缩写,如果我们没有提前了解过,我们往往很难以快速Get到对方的意思。在这里&…...
大数据平台简介
一、分布式系统基础架构 (一)定义与核心特征 分布式系统是由多台计算机(节点)通过网络协作组成的系统,对外表现为一个统一整体。其核心特征包括: 去中心化:节点平等或分角色协作(如…...
电脑端移植至手机平板:攻克难题,仙盟架构显神通——仙盟创梦IDE
在将电脑端应用移植到手机和平板的过程中,常面临诸多棘手问题。像 1.x 号关闭按钮因位置设计欠佳,难以被用户精准点击,字体过小导致阅读与操作不便等。未来之窗仙盟创梦凭借创新的仙盟架构,巧妙且高效地化解了这些困扰开发者与用户…...
基于Python的中国象棋小游戏的设计与实现
基于Python的中国象棋小游戏的设计与实现 第一章 绪论1.1 研究背景1.2 研究意义 第二章 需求分析2.1 需求分析2.1.1核心功能需求2.1.2 用户体验需求2.1.3 衍生功能需求 2.2 可行性分析2.2.1 技术可行性2.2.2 经济可行性2.2.3 市场可行性2.2.4 法律与合规性 第三章 概要设计3.1 …...
HCIP --- OSPF综合实验
一、拓扑图 二、实验要求 1,R5为ISP,其上只能配置IP地址;R4作为企业边界路由器,出口公网地址需要通过PPP协议获取,并进行chap认证。 2,整个0SPF环境IP基于172.16.0.8/16划分。 3,所有设备均可访问R5的环…...
【OpenGL】OpenGL学习笔记-1:VS2019配置OpenGL开发环境
在Visual Studio 2019中可以通过手动配置库文件或NuGet包管理器快速安装的方法配置OpenGL环境,详细步骤如下: 一、打开VS2019,创建新的控制台项目 二、方法一:手动配置GLEW/GLFW/GLAD库 GLFW是窗口管理和输入事件的基础设施&…...
GWAS_LD
局部LDblock 绘图 1. 查看显著位点附近基因情况 链接pvalue显著位点文件 ln -s ~/yiyaoran/GWAS/my_GWAS_J/P3.GWAS/01.tassel/mlm_output.manht_figure.sigSite.out . #也可以自己筛选awk $2 9 && $4 < 0.000028481 mlm_output.manht_input>368_GWAS.snpsnp两…...