详解爬虫基本知识及入门案列(爬取豆瓣电影《热辣滚烫》的短评 详细讲解代码实现)

news2024/11/17 16:31:23

目录

前言什么是爬虫?

爬虫与反爬虫基础知识

一、网页基础知识

 二、网络传输协议

HTTP(HyperText Transfer Protocol)和HTTPS(HTTP Secure)请求过程的原理?

三、Session和Cookies

Session

Cookies

Session与Cookies的区别与联系

 四、Web服务器Nginx

五、代理IP

1、代理IP的原理

2. 分类

3. 获取途径

入门案列

爬虫步骤及思路:

主要步骤: 

完整代码 

总结


博主介绍:✌专注于前后端、机器学习、人工智能应用领域开发的优质创作者、秉着互联网精神开源贡献精神,答疑解惑、坚持优质作品共享。本人是掘金/腾讯云/阿里云等平台优质作者、擅长前后端项目开发和毕业项目实战,深受全网粉丝喜爱与支持✌有需要可以联系作者我哦!

🍅文末三连哦🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

前言
什么是爬虫?

爬虫,也称为网页蜘蛛或网络机器人,是一种按照既定规则,在网络上自动爬取信息的程序或脚本。它模拟人操作客户端(如浏览器或APP)向服务器发起网络请求,以抓取所需的数据。爬虫的工作原理主要包括网页请求、数据解析和数据存储等步骤。

首先,爬虫需要确定要爬取的目标网址,并向目标网站发送HTTP请求获取网页的内容。在发送请求之前,爬虫可以选择合适的请求方法(如GET或POST),并可以设置请求头部信息以模拟浏览器的请求,避免被网站的反爬虫机制拦截。

其次,爬虫需要对获取到的网页内容进行解析。网页通常使用HTML、XML或JSON等标记语言编写,爬虫需要根据网页的结构和规则,提取出所需的数据。在解析过程中,爬虫还可以进行数据清洗和处理,以获取更加干净和规范的数据。

最后,爬虫将解析后的数据进行存储,供后续使用和分析。

爬虫与反爬虫基础知识

在正式学习爬虫知识之前,我们需要了解掌握相关的知识及概念,如浏览器前端页面知识、网络传输协议、Web服务器Nginx、代理IP、HTTP接口概念、Session和Cookie等。通过了解这些概念,我们可以更好地掌握爬虫基本原理,同时学会如何使用爬虫来收集和分析市场数据、社交媒体数据、新闻等信息,以做出更明智的商业和战略决策。

一、网页基础知识

如淘宝页面涉及的知识结构:

淘宝首页源代码: 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="data-spm" content="a2638t"/>
    <meta name="keywords" content=""/>
    <meta name="description" content=""/>
    

    <title>阿里巴巴1688.com - 全球领先的采购批发平台,批发网</title>

    <!-- 引用样式 -->
    <link rel="stylesheet" href="//gw.alipayobjects.com/os/lib/alifd/next/1.19.24/dist/next.min.css"/>
    <link rel="stylesheet" type="text/css" href="https://sucai.alicdn.com/boot-build-page-prod/71-59942-index.css"/>

    <script type="text/javascript" data-sc-pos="head" src="//g.alicdn.com/mtb/lib-mtop/2.4.2/mtop.js"></script>
    <script src="//g.alicdn.com/assets-group/jplus/0.0.11/index.js" crossorigin></script>
    <script src="//g.alicdn.com/assets-group/cbu-splus/0.1.0/index.js" crossorigin></script>

    <script>
        var jplusUtil = window.jplusUtil;
        var setConfig = jplusUtil && jplusUtil.setConfig;
        var renderAsync = true;
        setConfig('exp', {
            config: {
                selector: '.offer',
                visible: '0.01',
                duration: '1',
                propsMap: {
                    url: 'data-jplus-exp-url'
                }
            }
        })
                        var browserRenderData = {}; //渲染用数据
            
                        var urlParams = {"cosite":"360jj","exp":"zgc_tab:A;offerWwClick:A","hpageId":"krump-2125","keywords":"淘宝网首页","location":"landing_t4","p4pid":"c28241d4dafe1","pageNo":1,"pageSize":20,"pageUrl":"https://p4psearch.1688.com/page.html?keywordid=52595543980&cosite=360jj&keywords=%E6%B7%98%E5%AE%9D%E7%BD%91%E9%A6%96%E9%A1%B5&trackid=88576672928645988612270&location=landing_t4&ptid=hr40f198ac2e9981&exp=zgc_tab%3AA%3BofferWwClick%3AA&hpageId=krump-2125&bd_vid=e9f3037c3e6f91d0","platform":"PC","ptid":"hr40f198ac2e9981","pvType":"COMMON","se":"","ssr":false,"trackid":"88576672928645988612270"}
            
    </script>

</head>
<body data-bu="1688" data-spm="b_78128457"><script>
with(document)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("exparams","category=&aplus&asid=AQAAAABSEh5mCpDDLwAAAABaIrI1no31Rg==&aat=&abb=&ret=ali%5fresin%5ftrace%3dc%5fp4pid%3dc28241d4dafe1%7cc%5fbid%3d2%2d5%2d6%2d268%2dkrump%2d2125%2d2601%7c202403311%7cc%5froute%3d1&c_signed=&hn=p4p%2dlp033044050177%2ecenter%2ena620&at_bu=cbu",id="beacon-aplus",src="//g.alicdn.com/alilog/??/aplus_plugin_b2bfront/index.js,mlog/aplus_v2.js")
</script>
<div id="app"></div>

<!-- 引用页面 JS -->
<script src="https://sucai.alicdn.com/boot-build-page-prod/71-59942-index.js"></script>

<!-- 性能监控与异常打点 -->
<script>
    var g_config = window.g_config || {};
    g_config.jstracker2 = g_config.jstracker2 || {};
    g_config.jstracker2.pid = '25687-tracker';
</script>

<script src="//g.alicdn.com/tb/tracker/index.js"></script>

</body>
</html>

通过代码可以知识网页主要由HTML、CSS和JS三个部份组成。其作用:

  1. HTML与网页结构
    • HTML(HyperText Markup Language,超文本标记语言):是构建网页的标准标记语言。它定义了网页的结构和内容,通过标签(tags)来标记文本、图片、链接等各种元素。爬虫需要了解HTML标签和它们的用途,以便能够正确地解析网页并提取所需信息。
  2. CSS与网页样式
    • CSS(Cascading Style Sheets,层叠样式表):用于描述网页的样式,如颜色、字体、布局等。虽然爬虫主要关注网页的内容,但了解CSS有助于更好地识别和处理网页元素,特别是在处理动态加载或隐藏的内容时。
  3. JavaScript与网页交互
    • JavaScript:是一种用于网页交互的脚本语言。现代网页中,很多内容是通过JavaScript动态生成的,或者需要通过JavaScript交互来展示。爬虫需要能够处理JavaScript代码,以便获取这些动态生成的内容。有些高级爬虫会使用无头浏览器(headless browsers)来执行JavaScript并渲染网页。

 二、网络传输协议

网络传输协议是指在计算机网络中为了使不同的计算机之间能够传输数据而制定的一种约定。它是计算机网络的基础,是实现计算机数据传输和信息交换的重要手段。在网络传输协议中,通信双方需要达成共识,以确定数据传输的格式、数据包大小、传输速率、数据校验等参数,以保证数据传输的可靠性、安全性和高效性。常见的传输协议:

TCP/IP (Transmission Control Protocol/Internet Protocol):

  • TCP (Transmission Control Protocol): TCP是一种面向连接的协议,提供可靠的数据传输服务。它通过三次握手建立连接,确保数据按顺序、完整地传输到目标地址。TCP还负责流量控制和拥塞控制。
  • IP (Internet Protocol): IP是一种数据包交换的协议,它负责定义数据包的格式和发送到目标地址的方式。IP地址用于唯一标识网络上的设备。

UDP (User Datagram Protocol):

  • UDP是一种无连接的协议,不保证数据传输的可靠性和顺序。它比TCP快速,适用于一些对实时性要求较高的应用,如视频流和语音通话。

HTTP/HTTPS (HyperText Transfer Protocol/Secure):

  • HTTP: HTTP是一种应用层协议,用于从网络服务器传输超文本到本地浏览器。它是无状态的,每个请求独立处理,常用于网页浏览。
  • HTTPS: HTTPS是HTTP的安全版本,使用SSL/TLS加密数据传输,提供数据的机密性和完整性。它在电子商务、在线银行等需要安全传输数据的场景中广泛应用。

FTP (File Transfer Protocol):

  • FTP是用于在计算机之间传输文件的协议。它支持上传、下载和管理文件,通常用于网站维护、文件备份等。

SMTP (Simple Mail Transfer Protocol):

  • SMTP是用于电子邮件发送的协议。它定义了邮件如何从发送者的电子邮件服务器传输到接收者的电子邮件服务器。

HTTP(HyperText Transfer Protocol)和HTTPS(HTTP Secure)请求过程的原理?

其是应用层协议,主要用于在客户端和服务器之间传输超文本内容。它们的请求过程有一定的相似性,但HTTPS在传输层使用了SSL/TLS加密来增加安全性。下面我们详细讲解HTTP/HTTPS的请求过程:

HTTP请求过程:

  1. 建立连接

    • 客户端(通常是浏览器)向服务器发起一个TCP连接,通常在端口80。
    • 三次握手完成后,TCP连接建立。
  2. 发送请求

    • 客户端发送一个HTTP请求到服务器,请求包括HTTP方法(如GET、POST)、URL、HTTP版本、请求头(如User-Agent、Accept等)和可选的请求体(如POST数据)。
  3. 服务器处理请求

    • 服务器接收到请求后,解析HTTP方法、URL和头部信息。
    • 根据请求的内容,服务器执行相应的操作,可能是查询数据库、读取文件或执行其他业务逻辑。
  4. 发送响应

    • 服务器将处理结果封装成HTTP响应,响应包括HTTP版本、状态码、响应头(如Content-Type、Server等)和响应体(如HTML页面、JSON数据等)。
    • 服务器通过TCP连接将响应发送回客户端。
  5. 关闭连接

    • 一旦响应发送完成,TCP连接可能会立即关闭(短连接),也可能会保持一段时间以供后续请求使用(长连接)。

HTTPS请求过程:

HTTPS在HTTP的基础上增加了SSL/TLS加密来保护数据的机密性和完整性。以下是HTTPS请求过程的详细步骤:

  1. 建立连接

    • 客户端发起一个TCP连接到服务器的443端口。
    • TCP连接建立后,客户端和服务器之间开始SSL/TLS握手过程。
  2. SSL/TLS握手

    • 客户端发送一个SSL/TLS客户端Hello消息,包括支持的加密算法、随机数等。
    • 服务器回应一个SSL/TLS服务器Hello消息,选择一个加密算法、发送证书等。
    • 客户端验证服务器的证书,然后生成会话密钥。
    • 客户端使用服务器的公钥加密会话密钥,并发送给服务器。
    • 服务器使用私钥解密会话密钥,双方都获取了会话密钥用于后续通信。
  3. 发送加密请求

    • 客户端使用会话密钥加密HTTP请求,生成一个加密的HTTP请求。
    • 加密后的请求通过TCP连接发送到服务器。
  4. 服务器解密请求

    • 服务器使用会话密钥解密收到的HTTP请求。
    • 服务器处理解密后的请求,生成HTTP响应。
  5. 发送加密响应

    • 服务器使用会话密钥加密HTTP响应。
    • 加密后的响应通过TCP连接发送回客户端。
  6. 关闭连接

    • 加密的HTTP响应发送完成后,TCP连接可能会关闭或保持开放。

淘宝网页请求返回数据:

三、Session和Cookies

Session和Cookies是Web开发中常用的两种技术,用于在用户与服务器之间维护状态和数据。下面将详细解释Session和Cookies的概念、原理、使用场景以及它们之间的区别与联系。

Session

Session(服务端会话跟踪技术)是指在一个特定时间段内,单个客户端与Web服务器之间的一系列交互过程。在这个过程中,服务器会为每一个会话分配一个唯一的Session对象,用于存储与该会话相关的数据。Session数据保存在服务器端,因此相对于客户端存储的Cookies来说,Session数据更加安全,不易被窃取或截获。

Session的工作流程如下:

  1. 当客户端首次访问服务器时,服务器会创建一个新的Session对象,并为其分配一个唯一的Session ID。
  2. 服务器会将这个Session ID以某种方式(如响应报文或重写URL)发送给客户端,客户端会将其保存在本地(通常是保存在浏览器的内存中)。
  3. 在后续的请求中,客户端会将这个Session ID发送给服务器,以便服务器能够识别出当前会话并获取到对应的Session对象。
  4. 通过这个Session对象,服务器可以在多次请求之间共享数据,实现用户状态的维护。

Cookies

Cookies是一种小型文本文件,由服务器发送到客户端并保存在客户端的本地终端上。这些文件通常经过加密,用于存储用户信息,以便在后续的请求中进行识别和跟踪。Cookies的主要作用是帮助网站记住用户的状态和偏好,以便提供更加个性化的服务。

Cookies的工作原理如下:

  1. 当客户端首次访问服务器时,服务器会创建一个包含用户信息的Cookies对象,并将其发送给客户端。
  2. 客户端收到Cookies后,会将其保存在本地(如浏览器的Cookie缓存中)。
  3. 在后续的请求中,客户端会自动将保存在本地的Cookies发送给服务器。
  4. 服务器通过解析这些Cookies,可以获取到用户的身份信息和其他相关数据,从而进行相应的处理。

Session与Cookies的区别与联系

存储位置:一般Session数据存储在服务器端,而Cookies数据存储在客户端

数据安全性:由于Session数据存储在服务器端,因此相比于客户端存储的Cookies数据来说更加安全。而Cookies数据容易被窃取或截获,存在安全隐患。

数据大小与数量限制:Session在理论上没有大小限制,只受限于服务器的内存大小。而Cookies有大小限制以及浏览器在存储Cookies的数量上也有限制。

使用场景:Session通常用于存储重要的用户信息或会话数据,而Cookies则更多地用于存储用户的偏好设置、登录状态等轻量级数据。

 四、Web服务器Nginx

Web服务器Nginx是一款高性能的HTTP和反向代理服务器,具有高并发、轻量级、模块化、异步非阻塞的事件驱动模型等优点而广受好评。

Nginx最初由俄罗斯人伊戈尔·赛索耶夫为Rambler.ru站点开发,并于2004年首次公开发布。在中国大陆,很多知名网站如百度、京东、新浪、网易、腾讯、淘宝等都是使用Nginx作为Web服务器。

Nginx的主要特点包括:

  1. 高并发、高性能:Nginx能够处理大量并发连接,支持高达50,000个并发连接数,并经受高负载的考验。其吞吐量比传统的Web服务器高很多倍,使得它非常适合高流量、高负载的网站和应用。
  2. 轻量级:Nginx的代码精简,功能简洁,占用资源少,启动和运行速度快。同时,其分布式架构和优秀的容错机制使得Nginx在服务器出现故障时能够自动切换到备份服务器,保证服务的连续性和稳定性。
  3. 模块化:Nginx的模块化架构使得它的扩展性非常好,支持多种模块和插件,可以通过添加模块和插件来实现更多的功能。
  4. 异步非阻塞的事件驱动模型:与Node.js相似,Nginx使用异步非阻塞的事件驱动模型来处理请求,这使得它能够高效地处理大量并发连接。
  5. 高可靠性:Nginx支持热部署,启动简单,可以做到7*24不间断运行。此外,它的架构是分布式的,可以通过多个节点实现负载均衡,提高系统的可靠性和可用性。

Nginx在Web服务中扮演了多个重要角色:

  1. 静态资源服务:Nginx可以作为静态资源服务器,提供图片、视频、CSS、JS等静态资源的访问服务。
  2. 反向代理服务:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,并缓存请求结果以提高性能。同时,它支持多种负载均衡策略,如轮询、加权轮询和IP hash等,可以根据需要选择合适的策略来分发请求。
  3. API服务:Nginx可以与OpenResty等框架结合,提供API服务。

此外,Nginx还具有良好的配置性和安全性。其配置文件简单易懂,方便管理员进行配置和管理。同时,Nginx可以通过限制访问IP、防止DDoS等多种方式来保护服务器的安全。

五、代理IP

1、代理IP的原理

代理IP的工作原理基于代理服务器。当A机用户电脑通过代理服务器C机发送请求时,代理服务器会代表用户向目标服务器B机发送请求,然后将目标服务器B机的响应返回给用户。这样,目标服务器B机只能看到代理服务器C机的IP地址,而不知道真实的用户IP地址。

IP代理原理图:

2. 分类

根据代理IP的类型和使用场景,代理IP可以分为以下几类:

  • HTTP代理:主要用于HTTP协议的代理,适用于网页浏览等。

  • HTTPS代理:专用于HTTPS协议的代理,支持SSL加密的网站访问。

  • SOCKS代理:支持多种协议的代理,包括HTTP、HTTPS和FTP等,更为灵活。

  • 透明代理:用户不需要进行任何设置,网络请求会自动通过代理服务器。

  • 匿名代理:代理服务器会隐藏用户的真实IP地址,但目标服务器可以知道用户使用了代理。

  • 高匿代理:完全隐藏用户的真实IP地址,目标服务器无法知道用户使用了代理。

3. 获取途径

获取代理IP的途径多种多样,但需注意代理IP的可用性和安全性:

  • 免费代理IP网站:有一些网站提供免费的代理IP列表,用户可以直接复制使用。但免费代理IP通常不稳定,速度慢,安全性差。

  • 付费代理IP服务:有专业的代理IP提供商提供付费的代理IP服务,通常提供更稳定、更快速、更安全的代理IP。

  • 自建代理服务器:用户可以自己租用或购买服务器,然后安装代理软件,自建代理服务器,这样可以完全控制代理IP的质量和安全性。

  • API接口:一些代理IP提供商提供API接口,用户可以通过API接口动态获取代理IP,方便集成到自己的应用或工具中。

  • 扫描器和爬虫:技术比较高的用户可以使用代理IP扫描器或爬虫工具,从网络上自动扫描和收集代理IP。

在这里插入一个小故事哦!对IP代理感兴趣的同学可以关注一下哦!

入门案列

爬取豆瓣的评论是一个常见的爬虫练习。今天我们利用基于Python来展示爬虫过程,使用BeautifulSoup和requests库来爬取豆瓣电影《热辣滚烫》的短评。

爬虫步骤及思路:

导入必要的库:requests用于发送HTTP请求,BeautifulSoup用于解析HTML。

定义fetch_comments函数:这个函数接收一个URL,发送GET请求获取页面内容,然后使用BeautifulSoup解析页面,提取评论并返回。

if __name__ == '__main__':部分:

  • 定义基础URL,它是不包括页数和其他参数的URL。
  • 初始化一个空列表all_comments来存储所有评论。
  • 循环获取前10页的评论:
    • 构建完整的URL,其中start参数用于指定从哪里开始获取评论。
    • 调用fetch_comments函数获取当前页的评论。
    • 将获取的评论添加到all_comments列表中。
  • 输出所有获取的评论,包括评论的序号和评论内容。

请确保已安装requestsbeautifulsoup4库。如果还未安装,可以使用以下命令安装: 

pip install requests beautifulsoup4

主要步骤: 

第一步:设置请求头,模拟浏览器访问 

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
    }

第二步:发送GET请求获取页面内容并检测返回结果

  response = requests.get(url, headers=headers)

 第三步:使用BeautifulSoup解析页面内容

soup = BeautifulSoup(response.text, 'html.parser')

第四步:主要获取评论并输出评论内容

完整代码 

import requests
from bs4 import BeautifulSoup


def fetch_comments(url):
    # 设置请求头,模拟浏览器访问
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
    }

    # 发送GET请求获取页面内容
    response = requests.get(url, headers=headers)

    # 检查响应状态码,确保请求成功
    if response.status_code != 200:
        print('爬取失败')
        return

    # 使用BeautifulSoup解析页面内容
    soup = BeautifulSoup(response.text, 'html.parser')

    # 初始化一个空列表来存储评论
    comments = []

    # 找到所有的评论元素
    comment_items = soup.find_all('span', class_='short')

    # 遍历每个评论元素,提取评论文本并添加到列表中
    for item in comment_items:
        comments.append(item.text.strip())

    return comments


if __name__ == '__main__':
    # 基础URL,不包括页数和其他参数
    base_url = 'https://movie.douban.com/subject/36081094/comments'

    # 初始化一个空列表来存储所有评论
    all_comments = []

    # 循环获取前10页的评论
    for i in range(10):
        # 构建完整的URL,包括start参数用于指定从哪里开始获取评论
        url = f'{base_url}?start={i * 20}&limit=20&status=P&sort=new_score'

        # 调用fetch_comments函数获取当前页的评论
        comments = fetch_comments(url)

        # 将获取的评论添加到all_comments列表中
        all_comments.extend(comments)

    # 输出所有获取的评论
    for idx, comment in enumerate(all_comments, 1):
        print(f'{idx}. {comment}')

 官网评论情况:

获取的评论结果:

总结

首先,我们详细探讨了网页知识、网络传输协议、代理IP的工作原理、应用场景以及设置方式。代理IP通过第三方服务器(代理服务器)转发网络请求,从而隐藏真实IP地址,保护用户隐私和数据安全。它在网络安全、SEO优化、数据采集以及安全加固等方面有着广泛的应用。在设置代理IP时,我们可以通过浏览器、系统或软件等方式进行设置,但需要注意选择可靠的代理服务商并遵守相关法律法规。同时我们也演示如何利用requests库来爬取豆瓣评论,最主要是学会爬虫的原理以及思想思路,但我们也需要遵守相关的法律。

通过今天的学习,我们对代理IP和Nginx有了更深入的了解,必然可以为今后的Web相关工作提供了有力的基础支持。同时,我们也意识到在使用这些技术时需要遵守相关法律法规,确保合法合规地运用它们。

创作不易,你的支持是我的不竭动力,感谢大家的三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

核桃派全志H616实现VNC远程桌面教程

VNC远程桌面 核桃派预装了VNC服务器&#xff0c;VNC适应于局域网&#xff08;通常指同一个路由器网络下&#xff09;桌面登录。使用该服务前先确保核桃派已经通过以太网或无线WiFi连接到路由器。 使用核桃派桌面系统的时候由于要配置各类信息和联网&#xff0c;可以使用HDMI显…

【C语言】每日一题,快速提升(5)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. strlen函数 2. strcpy函数 3. strcat函数 题目&#xff1a;模拟实现 strlen--strcpy--strcat--三个函数 1. strlen函数 字符串计算 #include <stdio.h…

硕士博士学位论文格式检查规范

包含标题、摘要、英文缩写、关键词、公式、表格、图片、参考文献&#xff0c;只能说太强了 学位论文检查三十六策点击蓝字 关注我们 写在前面 同学们撰写学位论文时&#xff0c;常常犯一些错误&#xff0c;既有格式错误&#xff0c;也有内容错误。本文列举36https://mp.weixin.…

【python】如何通过python来发送短信

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

SFP、SFP+、SFP28 与 QSFP28 收发器之间的差异:兼容性和性能

近年来&#xff0c;网络技术发展迅速&#xff0c;因此&#xff0c;计算专业人员面临着越来越令人困惑的术语和缩写词。 管理数据中心时必须了解的一个关键领域是收发器&#xff0c;特别是 SFP (1550nm/1310nm)、SFP (850nm) 和 QSFP28 (4x25G) 之间的差异。 这些型号在兼容性方…

【热门话题】常用经典目标检测算法概述

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 常用经典目标检测算法概述1. 滑动窗口与特征提取2. Region-based方法R-CNN系列M…

【日志】CSDN-AI助手升级日志

CSDN-AI助手升级日志 2023/04/05上线 支持点赞、收藏回访 关注回访&#xff08;对方至少有一条博客的记录&#xff09; 评论回访 私信检测到群发消息自动三连 OR 通过私信指令三连触发 bug优化 优化检测模式&#xff0c;防止出现多触发情况 为了防止操作额度不够&#xff0c…

Java面试八股之简述Servlet体系结构

简述Servlet体系结构 Servlet是Java Web开发中的核心组件&#xff0c;用于接收和响应HTTP请求&#xff0c;生成动态内容。它具有平台无关性、协议无关性和动态内容生成能力&#xff0c;遵循明确的生命周期。尽管现代Web开发中更多使用高级框架&#xff0c;但Servlet作为基础&a…

[笔试训练](二)

004 牛牛的快递_牛客题霸_牛客网 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 使用向上取整函数ceil()&#xff0c;&#xff08;记得添加头文件#include<cmath>&#xff09; #include <iostream> #include <cmath> using namespace std;int main(…

基于SpringBoot+Vue的企业资产管理系统设计与实现

1、系统演示视频&#xff08;演示视频&#xff09; 2、需要请联系

Ceph 分布式文件系统 搭建及使用

一、Ceph 介绍 在当今数据爆炸式增长的时代&#xff0c;企业对于可靠、可扩展的存储解决方案的需求日益迫切。Ceph 作为一种开源的、可伸缩的分布式存储解决方案&#xff0c;正逐渐成为企业级存储领域的热门选择。Ceph是一种由Radicalbit公司开发的开源分布式存储系统&#xf…

Visual Studio 2022 Professional、Enterprise安装教程

Visual Studio 2022 Professional、Enterprise安装教程 下载安装包安装 我是电脑已经有VS2019&#xff0c;现在加装一个VS2022。 下载安装包 首先下载安装包&#xff0c;进入官网进行下载&#xff0c;VS官网下载地址。 进入之后&#xff0c;会显示如下界面&#xff0c;选择Pro…

chrome插件 脚本 使用和推荐

chrome插件使用 在极简插件中可以进行下载并进行安装, 内部有安装教程在极简插件中搜索"油猴",下载一个油猴插件,并安装,可以用于下载很多的用户脚本用户脚本下载地址Greasy Fork,里面有很多实用的用户脚本供下载,并在油猴中进行管理 推荐的插件 Tampermonkey 篡改…

Linux进阶篇:centos7搭建jdk环境

Linux服务搭建篇&#xff1a;centos7搭建jdk环境 本文主要介绍的是如何是Linux环境下安装JDK的&#xff0c;关于jdk的概念就不做赘述了&#xff0c;相信大家都有所耳闻了&#xff0c;Linux环境下&#xff0c;很多时候也离不开Java的&#xff0c;下面笔者就和大家一起分享如何jd…

都2024年了,你还不知道git worktree么?

三年前 python 大佬吉多范罗苏姆(为 Python 程序设计语言的最初设计者及主要架构师)才知道 git worktree &#xff0c;我现在才知道&#xff0c;我觉得没啥丢人的。 应用场景 如果你正在 feature 的分支中开发新功能&#xff0c;线上版本紧急错误又需要你基于 master 做修复。…

DFS和回溯专题:组合总和

DFS和回溯专题&#xff1a;组合总和 题目链接: 39.组合总和 参考题解&#xff1a;代码随想录 题目描述 代码纯享版 class Solution {public List<List<Integer>> list_all new ArrayList();public List<Integer> list new ArrayList();public List<…

linux服务器和RAID磁盘阵列

1、服务器 &#xff08;1&#xff09;服务器分类 机架式居多 塔式 刀片式 机柜式 机架式 机架式服务器是一种服务器的机箱形式&#xff0c;它被设计为在服务器机架或机柜中安装。机架式服务器通常具有标准的19英寸宽度&#xff0c;并且可以根据服务器的高度进行划分&#xff0…

gcc/g++编译器

之前学习的vim为linux中编写程序的编写器&#xff0c;但是程序想要编译执行就还需要c语言的编译器gcc 程序翻译的过程 首先我们来了解一下程序编译语言的诞生历程 首先计算机只知道二进制&#xff0c;所以人们开始是用二进制编码&#xff0c;然后又用二进制编码写了一个汇编语…

智慧安防边缘计算硬件AI智能分析网关V4算法启停的操作步骤

TSINGSEE青犀视频智能分析网关V4内置了近40种AI算法模型&#xff0c;支持对接入的视频图像进行人、车、物、行为等实时检测分析&#xff0c;上报识别结果&#xff0c;并能进行语音告警播放。硬件管理平台支持RTSP、GB28181协议、以及厂家私有协议接入&#xff0c;可兼容市面上常…

基于CH32V103的多功能推杆设计

一、项目简介 “创意源于生活&#xff0c;工具始于懒惰。” 整体造型外观参考了最近比较火的夫妻游戏《双人成行》第一关里面那个吸尘器的推杆开关&#xff0c;结构中采用阻尼器/滚珠轴承等器件&#xff0c;使其非常具有质感和手感。功能上我构思不能只有电脑开关这么简单地一…