当前位置: 首页 > news >正文

Scrapy框架之【settings.py文件】详解

在这里插入图片描述
settings.py 文件的主要作用是对 Scrapy 项目的全局设置进行集中管理。借助修改这个文件中的配置项,你可以对爬虫的行为、性能、数据处理等方面进行灵活调整,而无需修改爬虫代码。

①默认英文注释settings.py

# Scrapy settings for douban project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
#     https://docs.scrapy.org/en/latest/topics/settings.html
#     https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#     https://docs.scrapy.org/en/latest/topics/spider-middleware.htmlBOT_NAME = "douban"SPIDER_MODULES = ["douban.spiders"]
NEWSPIDER_MODULE = "douban.spiders"# Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = "douban (+http://www.yourdomain.com)"# Obey robots.txt rules
ROBOTSTXT_OBEY = True# Configure maximum concurrent requests performed by Scrapy (default: 16)
#CONCURRENT_REQUESTS = 32# Configure a delay for requests for the same website (default: 0)
# See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay
# See also autothrottle settings and docs
#DOWNLOAD_DELAY = 3
# The download delay setting will honor only one of:
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
#CONCURRENT_REQUESTS_PER_IP = 16# Disable cookies (enabled by default)
#COOKIES_ENABLED = False# Disable Telnet Console (enabled by default)
#TELNETCONSOLE_ENABLED = False# Override the default request headers:
#DEFAULT_REQUEST_HEADERS = {
#    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
#    "Accept-Language": "en",
#}# Enable or disable spider middlewares
# See https://docs.scrapy.org/en/latest/topics/spider-middleware.html
#SPIDER_MIDDLEWARES = {
#    "douban.middlewares.doubanSpiderMiddleware": 543,
#}# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#DOWNLOADER_MIDDLEWARES = {
#    "douban.middlewares.doubanDownloaderMiddleware": 543,
#}# Enable or disable extensions
# See https://docs.scrapy.org/en/latest/topics/extensions.html
#EXTENSIONS = {
#    "scrapy.extensions.telnet.TelnetConsole": None,
#}# Configure item pipelines
# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html
#ITEM_PIPELINES = {
#    "douban.pipelines.doubanPipeline": 300,
#}# Enable and configure the AutoThrottle extension (disabled by default)
# See https://docs.scrapy.org/en/latest/topics/autothrottle.html
#AUTOTHROTTLE_ENABLED = True
# The initial download delay
#AUTOTHROTTLE_START_DELAY = 5
# The maximum download delay to be set in case of high latencies
#AUTOTHROTTLE_MAX_DELAY = 60
# The average number of requests Scrapy should be sending in parallel to
# each remote server
#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
# Enable showing throttling stats for every response received:
#AUTOTHROTTLE_DEBUG = False# Enable and configure HTTP caching (disabled by default)
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
#HTTPCACHE_ENABLED = True
#HTTPCACHE_EXPIRATION_SECS = 0
#HTTPCACHE_DIR = "httpcache"
#HTTPCACHE_IGNORE_HTTP_CODES = []
#HTTPCACHE_STORAGE = "scrapy.extensions.httpcache.FilesystemCacheStorage"# Set settings whose default value is deprecated to a future-proof value
REQUEST_FINGERPRINTER_IMPLEMENTATION = "2.7"
TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor"
FEED_EXPORT_ENCODING = "utf-8"

②中文注释settings.py

# Scrapy 豆瓣项目的设置文件
# 为简洁起见,本文件仅包含重要或常用的设置。
# 更多设置可参考官方文档:
# https://docs.scrapy.org/en/latest/topics/settings.html
# https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
# https://docs.scrapy.org/en/latest/topics/spider-middleware.html
# 项目名称
BOT_NAME = "douban"# 蜘蛛模块路径
SPIDER_MODULES = ["douban.spiders"]
NEWSPIDER_MODULE = "douban.spiders"# 爬虫身份标识(用户代理)
#USER_AGENT = "douban (+http://www.yourdomain.com)"# 是否遵守robots.txt规则
ROBOTSTXT_OBEY = True# 配置Scrapy的最大并发请求数(默认:16)
#CONCURRENT_REQUESTS = 32# 配置对同一网站的请求延迟(默认:0)
# 参见 https://docs.scrapy.org/en/latest/topics/settings.html#download-delay
# 另见自动限速设置和文档
#DOWNLOAD_DELAY = 3# 下载延迟设置将只采用以下一项:
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
#CONCURRENT_REQUESTS_PER_IP = 16# 是否启用Cookies(默认启用)
#COOKIES_ENABLED = False# 是否启用Telnet控制台(默认启用)
#TELNETCONSOLE_ENABLED = False# 覆盖默认请求头:
#DEFAULT_REQUEST_HEADERS = {
#    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
#    "Accept-Language": "en",
#}# 启用或禁用蜘蛛中间件
# 参见 https://docs.scrapy.org/en/latest/topics/spider-middleware.html
#SPIDER_MIDDLEWARES = {
#    "douban.middlewares.doubanSpiderMiddleware": 543,
#}# 启用或禁用下载器中间件
# 参见 https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#DOWNLOADER_MIDDLEWARES = {
#    "douban.middlewares.doubanDownloaderMiddleware": 543,
#}# 启用或禁用扩展
# 参见 https://docs.scrapy.org/en/latest/topics/extensions.html
#EXTENSIONS = {
#    "scrapy.extensions.telnet.TelnetConsole": None,
#}# 配置项目管道
# 参见 https://docs.scrapy.org/en/latest/topics/item-pipeline.html
#ITEM_PIPELINES = {
#    "douban.pipelines.doubanPipeline": 300,
#}# 启用并配置AutoThrottle扩展(默认禁用)
# 参见 https://docs.scrapy.org/en/latest/topics/autothrottle.html
#AUTOTHROTTLE_ENABLED = True# 初始下载延迟
#AUTOTHROTTLE_START_DELAY = 5# 高延迟情况下的最大下载延迟
#AUTOTHROTTLE_MAX_DELAY = 60# Scrapy应向每个远程服务器并行发送的平均请求数
#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0# 是否显示每个接收到的响应的限速统计信息:
#AUTOTHROTTLE_DEBUG = False# 启用并配置HTTP缓存(默认禁用)
# 参见 https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
#HTTPCACHE_ENABLED = True
#HTTPCACHE_EXPIRATION_SECS = 0
#HTTPCACHE_DIR = "httpcache"
#HTTPCACHE_IGNORE_HTTP_CODES = []
#HTTPCACHE_STORAGE = "scrapy.extensions.httpcache.FilesystemCacheStorage"# 将已弃用默认值的设置设置为面向未来的值
REQUEST_FINGERPRINTER_IMPLEMENTATION = "2.7"
TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor"
FEED_EXPORT_ENCODING = "utf-8"

1.基本项目设置

# 项目名称
BOT_NAME = "douban"# 蜘蛛模块路径
SPIDER_MODULES = ["douban.spiders"]
NEWSPIDER_MODULE = "douban.spiders"
  • BOT_NAME:该项目爬虫的名称,此名称会在日志和统计信息里体现。
  • SPIDER_MODULES:这是一个列表,其中包含了 Scrapy 要查找爬虫的 Python 模块。这里表明 Scrapy 会在 douban.spiders 模块中搜寻爬虫类。
  • NEWSPIDER_MODULE:当你运用 scrapy genspider 命令来创建新的爬虫时,新爬虫文件会被生成到 douban.spiders 模块里。

2.用户代理与 robots.txt 规则

# 爬虫身份标识(用户代理)
#USER_AGENT = "douban (+http://www.yourdomain.com)"# 是否遵守robots.txt规则
ROBOTSTXT_OBEY = True
  • USER_AGENT:注释掉的这一行可用于设定爬虫的用户代理。用户代理能让服务器知晓请求是由何种客户端发出的。你可将其设定为特定值,从而让服务器识别你的爬虫及其所属网站。
  • ROBOTSTXT_OBEY:若设为 True,Scrapy 就会遵循目标网站的 robots.txt 文件规则。这意味着爬虫会依据 robots.txt 里的规则来决定是否可以访问某些页面。

3.并发请求与下载延迟设置

# 配置Scrapy的最大并发请求数(默认:16)
#CONCURRENT_REQUESTS = 32# 配置对同一网站的请求延迟(默认:0)
# 参见 https://docs.scrapy.org/en/latest/topics/settings.html#download-delay
# 另见自动限速设置和文档
#DOWNLOAD_DELAY = 3# 下载延迟设置将只采用以下一项:
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
#CONCURRENT_REQUESTS_PER_IP = 16
  • CONCURRENT_REQUESTS:可设置 Scrapy 同时执行的最大请求数,默认值是 16。
    DOWNLOAD_DELAY:设置对同一网站的请求之间的延迟时间(单位为秒)。这有助于避免对目标网站造成过大压力。
  • CONCURRENT_REQUESTS_PER_DOMAINCONCURRENT_REQUESTS_PER_IP:这两个设置项只能启用一个,用于限制对同一域名或同一 IP 地址的并发请求数。

4.Cookies 与 Telnet 控制台设置

# 是否启用Cookies(默认启用)
#COOKIES_ENABLED = False# 是否启用Telnet控制台(默认启用)
#TELNETCONSOLE_ENABLED = False
  • COOKIES_ENABLED:若设为 False,Scrapy 就不会处理 cookies。默认情况下,Scrapy 会启用 cookies 处理。
  • TELNETCONSOLE_ENABLED:若设为 False,则会禁用 Telnet 控制台。默认情况下,Scrapy 会启用 Telnet 控制台,借助该控制台你能在爬虫运行时与其交互。
  • COOKIES_DEBUG :若设为 True,启用 Cookies 调试模式。Scrapy 会在日志中输出详细的 Cookies 相关信息,包括请求中发送的 Cookies 以及响应中收到的 Cookies。默认是禁用Cookies 调试模式

5.默认请求头设置

# 覆盖默认请求头:
#DEFAULT_REQUEST_HEADERS = {
#    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
#    "Accept-Language": "en",
#}
  • DEFAULT_REQUEST_HEADERS:可用于覆盖默认的请求头。这里给出了一个示例,设置了 AcceptAccept-Language 请求头。

6.中间件设置

# 启用或禁用蜘蛛中间件
# 参见 https://docs.scrapy.org/en/latest/topics/spider-middleware.html
#SPIDER_MIDDLEWARES = {
#    "douban.middlewares.doubanSpiderMiddleware": 543,
#}# 启用或禁用下载器中间件
# 参见 https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#DOWNLOADER_MIDDLEWARES = {
#    "douban.middlewares.doubanDownloaderMiddleware": 543,
#}
  • SPIDER_MIDDLEWARES:用于启用或禁用爬虫中间件。中间件是在爬虫处理请求和响应时执行的组件。数字 543 代表中间件的优先级,数值越小优先级越高。
  • DOWNLOADER_MIDDLEWARES:用于启用或禁用下载器中间件。下载器中间件会在下载请求和响应时发挥作用。

7.扩展设置

# 启用或禁用扩展
# 参见 https://docs.scrapy.org/en/latest/topics/extensions.html
#EXTENSIONS = {
#    "scrapy.extensions.telnet.TelnetConsole": None,
#}
  • EXTENSIONS:用于启用或禁用 Scrapy 的扩展。扩展是能增强 Scrapy 功能的组件。这里的示例是禁用 Telnet 控制台扩展。

8.项目管道设置

# 配置项目管道
# 参见 https://docs.scrapy.org/en/latest/topics/item-pipeline.html
#ITEM_PIPELINES = {
#    "douban.pipelines.doubanPipeline": 300,
#}
  • ITEM_PIPELINES:用于配置项目管道。项目管道是在爬虫提取到数据后对数据进行处理的组件,例如数据清洗、存储等。数字 300 代表管道的优先级,数值越小优先级越高。

9.自动节流扩展设置

# 启用并配置AutoThrottle扩展(默认禁用)
# 参见 https://docs.scrapy.org/en/latest/topics/autothrottle.html
#AUTOTHROTTLE_ENABLED = True# 初始下载延迟
#AUTOTHROTTLE_START_DELAY = 5# 高延迟情况下的最大下载延迟
#AUTOTHROTTLE_MAX_DELAY = 60# Scrapy应向每个远程服务器并行发送的平均请求数
#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0# 是否显示每个接收到的响应的限速统计信息:
#AUTOTHROTTLE_DEBUG = False
  • AUTOTHROTTLE_ENABLED:若设为 True,则启用自动节流扩展。该扩展会依据目标网站的响应时间自动调整请求的延迟。
  • AUTOTHROTTLE_START_DELAY:初始的下载延迟时间(单位为秒)。
  • AUTOTHROTTLE_MAX_DELAY:在高延迟情况下允许的最大下载延迟时间(单位为秒)。
  • AUTOTHROTTLE_TARGET_CONCURRENCY:Scrapy 向每个远程服务器并行发送请求的平均数量。
  • AUTOTHROTTLE_DEBUG:若设为 True,则会在每次收到响应时显示节流统计信息。

10.HTTP 缓存设置

# 启用并配置HTTP缓存(默认禁用)
# 参见 https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
#HTTPCACHE_ENABLED = True
#HTTPCACHE_EXPIRATION_SECS = 0
#HTTPCACHE_DIR = "httpcache"
#HTTPCACHE_IGNORE_HTTP_CODES = []
#HTTPCACHE_STORAGE = "scrapy.extensions.httpcache.FilesystemCacheStorage"
  • HTTPCACHE_ENABLED:若设为 True,则启用 HTTP 缓存。
  • HTTPCACHE_EXPIRATION_SECS:缓存的过期时间(单位为秒)。设为 0 表示缓存永不过期。
  • HTTPCACHE_DIR:缓存文件的存储目录。
  • HTTPCACHE_IGNORE_HTTP_CODES:一个列表,包含需要忽略缓存的 HTTP 状态码。
  • HTTPCACHE_STORAGE:指定缓存的存储方式,这里使用的是文件系统缓存存储。

11.其他设置

# 将已弃用默认值的设置设置为面向未来的值
REQUEST_FINGERPRINTER_IMPLEMENTATION = "2.7"
TWISTED_REACTOR = "twisted.internet.asyncioreactor.AsyncioSelectorReactor"
FEED_EXPORT_ENCODING = "utf-8"
  • REQUEST_FINGERPRINTER_IMPLEMENTATION:设置请求指纹的实现版本,"2.7" 是为了保证未来兼容性。
  • TWISTED_REACTOR:指定 Twisted 事件循环的实现,这里使用AsyncioSelectorReactor 以支持异步 I/O。
  • FEED_EXPORT_ENCODING:设置数据导出时的编码格式为 UTF-8

③其他常用settings.py配置

1.日志相关配置

# 日志级别,可选值有 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'
LOG_LEVEL = 'DEBUG'
# 日志文件路径,若设置则日志会输出到该文件,而非控制台
LOG_FILE = 'scrapy.log'
  • LOG_LEVEL:借助设定不同的日志级别,你能够控制 Scrapy 输出的日志详细程度。比如,DEBUG 会输出最详尽的日志信息,而 CRITICAL 仅输出关键错误信息。
  • LOG_FILE:把日志保存到指定文件,便于后续查看和分析。

2.下载超时与重试配置

# 下载超时时间(秒)
DOWNLOAD_TIMEOUT = 180
# 重试次数
RETRY_TIMES = 3
# 需要重试的 HTTP 状态码
RETRY_HTTP_CODES = [500, 502, 503, 504, 408]
  • DOWNLOAD_TIMEOUT:若请求在规定时间内未得到响应,就会被判定为超时。
  • RETRY_TIMES:请求失败时的重试次数。
  • RETRY_HTTP_CODES:遇到这些 HTTP 状态码时,Scrapy 会对请求进行重试。

3.代理配置

# 设置代理服务器
HTTP_PROXY = 'http://proxy.example.com:8080'
HTTPS_PROXY = 'http://proxy.example.com:8080'

4.数据存储配置

# 导出数据的格式,如 'json', 'csv', 'xml' 等
FEED_FORMAT = 'json'
# 导出数据的文件路径
FEED_URI = 'output.json'

5.调度器相关配置

# 调度器队列类型,'priority' 为优先级队列
SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue'
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue'
  • SCHEDULER_DISK_QUEUESCHEDULER_MEMORY_QUEUE:分别设置调度器的磁盘队列和内存队列类型。

6.爬虫并发配置

# 每个域名的并发请求数
CONCURRENT_REQUESTS_PER_DOMAIN = 8
# 每个 IP 的并发请求数
CONCURRENT_REQUESTS_PER_IP = 8

7.下载器中间件配置

# 随机更换 User-Agent 的中间件
DOWNLOADER_MIDDLEWARES = {'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,
}
  • scrapy.downloadermiddlewares.useragent.UserAgentMiddleware
    这是 Scrapy 框架内置的下载器中间件,它的主要功能是处理请求时的 User-Agent 头。不过,它的功能相对基础,一般只能设置单一的 User-Agent 或者从一个简单的列表里随机选择 User-Agent。在上述配置里,将其值设为 None 意味着禁用这个默认的中间件。

  • scrapy_fake_useragent.middleware.RandomUserAgentMiddleware
    此中间件来自于第三方库 scrapy-fake-useragent。这个库的作用是在爬取过程中随机选取不同的 User-Agent 来模拟不同的客户端,从而降低被目标网站识别为爬虫的可能性。 pip install scrapy-fake-useragent安装

8.深度限制配置

# 最大爬取深度
DEPTH_LIMIT = 3
# 深度优先级,值越大表示深度优先
DEPTH_PRIORITY = 1
  • DEPTH_LIMIT:限制爬虫的最大爬取深度,避免爬取过深导致数据量过大。
  • DEPTH_PRIORITY:设置深度优先的优先级,值越大越倾向于深度优先爬取。

相关文章:

Scrapy框架之【settings.py文件】详解

settings.py 文件的主要作用是对 Scrapy 项目的全局设置进行集中管理。借助修改这个文件中的配置项,你可以对爬虫的行为、性能、数据处理等方面进行灵活调整,而无需修改爬虫代码。 ①默认英文注释settings.py # Scrapy settings for douban project # …...

Nginx发布Vue(ElementPlus),与.NETCore对接(腾讯云)

案例资料链接:https://download.csdn.net/download/ly1h1/90745660 1.逻辑说明 1.1 逻辑示意图 # 前端请求处理逻辑图浏览器请求流程: 1. 浏览器发起请求├─ 开发环境(DEV)│ ├─ 请求URL: http://192.168.0.102:3000/api/xxx│ └─ 被Vite代理处理└─ 生产…...

深入探索 AAC 编码原理与 ADTS 格式:音频世界的智慧结晶

在数字音频的广阔领域中,AAC 编码及其相关的 ADTS 格式扮演着至关重要的角色。无论是在我们日常使用的音乐 APP,还是高清视频中的音频部分,都能看到它们的身影。今天,就让我们深入探索 AAC 编码原理与 ADTS 格式的奥秘&#xff0c…...

深度学习核心架构:探明四种基础神经网络

摘要 本文对多层感知机(MLP)、卷积神经网络(CNN)、循环神经网络(RNN)和注意力机制等深度学习核心架构的内部运作机制进行可视化分析。通过展示参数学习过程、激活映射和注意力分布等关键特征,揭示了"黑箱"模型的内部工作原理,为模型可解释性研…...

解析机器人 2.0.2 | 支持超过50种短视频平台的链接解析,无水印提取,多功能下载工具

解析机器人是一款功能强大的工具软件,登录即可解锁会员特权。它支持超过50种短视频平台的链接解析,包括抖音、快手、西瓜、bilibili等,并能实现无水印提取。此外,还提供P2P下载、磁力链等多种下载方式,确保用户能够快速…...

【漫话机器学习系列】237. TSS总平方和

深度理解 TSS(总平方和):公式、意义与应用 在机器学习与统计建模领域,评价模型好坏的重要指标之一就是方差与误差分析。其中,TSS(Total Sum of Squares,总平方和)扮演着非常关键的角…...

flutter3.29 build.gradle.kts设置安卓签名

1、在android目录下创建key.properties文件 storePassword密码 keyPassword密码 keyAlias别名 storeFilejks文件完整路径 2、修改android/app/build.gradle.kts 顶部插入import java.util.Properties import java.io.FileInputStreamval keystoreProperties Properties() v…...

<servlet-class>和</url-pattern>的作用

在 SpringMVC 的 web.xml 配置中&#xff0c;<servlet-class> 和 <url-pattern> 是两个关键配置项&#xff0c;分别用于指定处理请求的 Servlet 类和定义该 Servlet 拦截的请求路径规则。以下是它们的具体作用及原理分析&#xff1a; 一、<servlet-class> 的…...

linux部署的mysql数据库修改表名为小写配置

背景: 使用ruoyi-flowable框架初始化流程表结构时, 执行的sql语句创建的表名是大写。但mysql执行sql时大小写是敏感的 删除大写表 处理配置 使用mysql 8.0.41配置表名大小写敏感配置&#xff0c;需要初始化数据库 在MySQL 8.0及以上版本中&#xff0c;lower_case_table_names参…...

【Hot 100】94. 二叉树的中序遍历

目录 引言二叉树的中序遍历我的解题代码优化更清晰的表述建议&#xff1a; &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;算法专栏&#x1f4a5; 标题&#xff1a;【Hot 100】94. 二叉树的中序遍历❣️ 寄语&#xff1a;书到用时方恨少&#xff…...

基于D-Mixer与TransXNet的YOLOv8改进—融合全局-局部特征与空间降维注意力机制的CNN-ViT混合架构

随着目标检测任务对精度与效率要求的不断提升,传统的卷积神经网络(CNN)在建模长程依赖和复杂语义关系方面逐渐暴露出其局限性。而视觉Transformer(ViT)虽然在全局信息建模上表现优异,却因计算开销大、局部细节感知能力不足,在实时检测任务中难以直接部署。本文提出一种面向Y…...

《算法导论(第4版)》阅读笔记:p2-p3

《算法导论(第4版)》学习第 2 天&#xff0c;p2-p3 总结&#xff0c;总计 2 页。 一、技术总结 无。 二、英语总结(生词&#xff1a;1) 1.incremental (1) increase: in-(“in”) crescere “to grow” (2)increment (3)incremental: increment -al adj. incremental…...

基于Qlearning强化学习的电梯群控系统高效调度策略matlab仿真

目录 1.算法仿真效果 2.算法涉及理论知识概要 2.1 Q-learning强化学习原理 2.2 基于Q-learning的电梯群控系统建模 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下&#xff08;完整代码运行后无水印&#xff09;&#xff1a; 仿真操作…...

嵌入式硬件篇---STM32F103C8T6STM32F103RCT6

文章目录 前言一、相同点内核与主频基础外设开发环境 二、不同点1. 存储容量2. 外设资源3. 封装与引脚 三、代码移植注意事项1. 内存与 Flash 限制Flash差异RAM调整 2. 外设差异外设缺失&#xff1a;GPIO 映射&#xff1a; 3. 中断向量表中断向量偏移 4. 时钟与总线配置APB分频…...

rhce第二次作业

任务目标 1.配置ssh实现A&#xff0c;B主机互相免密登录 2.配置nginx服务&#xff0c;通过多ip区分多网站 任务一 关闭防火墙 [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# systemctl stop firewalld.service A主机免密登录B主机 ### A主机生成密钥 [rootlocalh…...

Linux第20节 --- inode和文件系统

一、没有被打开的文件 如果一个文件没有被打开&#xff0c;那么该文件存储在哪里&#xff1f; 该文件是存储在磁盘当中的&#xff01; 文件 文件内容 文件属性&#xff01; 文件的内容是按照数据块存储的&#xff1b;文件的属性其实就是inode&#xff08;是一个128字节的…...

LeetCode - 19.删除链表的倒数第N个结点

目录 题目 解法一 双指针算法 核心思想 执行流程 具体例子 代码 解法二 两次遍历法 核心思想 执行流程 具体例子 代码 题目 19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; 解法一 双指针算法 核心思想 利用双指针间隔固定距离(n1)&a…...

在 Ubuntu 上安装 cPanel

开始之前&#xff0c;请确保拥有一台 Ubuntu 服务器&#xff0c;推荐使用 Ubuntu 22.04 LTS。如果没有&#xff0c;可以查看免费服务器&#xff1a; 11个免费 VPS&#xff0c;够用一辈子了&#xff01;&#xff08;2025最新&#xff09;Top 11 免费VPS推荐平台对比&#xff08…...

《Linux macOS :GCC升级方法》

GCC&#xff08;GNU Compiler Collection&#xff09;是广泛使用的编译器套件&#xff0c;升级到9以上版本可以获得更好的C17/20支持和性能优化。以下是不同Linux发行版和macOS的升级方法&#xff1a; Ubuntu/Debian 系统 添加工具链源 sudo apt update sudo apt install soft…...

C++ STL vector容器详解:从原理到实践

引言 亲爱的小伙伴们&#xff0c;今天我要和大家分享一个C编程中的"神器"——vector容器&#xff01;作为STL&#xff08;标准模板库&#xff09;中最常用的容器之一&#xff0c;vector就像是一个"超级数组"&#xff0c;既有数组的高效随机访问特性&#…...

[计算机网络]数据链路层

0 概论&#xff1a;数据链路层都干什么事&#xff0c;提供啥功能 比物理层再高一层就是数据链路层&#xff0c;咱们上一篇讲物理层&#xff0c;物理层直接接触传输介质&#xff0c;现在数据链路层是使用物理层的传输服务&#xff0c;然后实现更多的功能。物理层是只管把比特流…...

基于 vue-flow 实现可视化流程图

vue-flow 是一个基于 Vue.js 的强大且灵活的可视化流程图库&#xff0c;它允许开发者轻松创建交互式的流程图、工作流图、节点图等。 主要特点 易于使用 &#xff1a;提供了简洁的 API 和组件&#xff0c;开发者可以快速上手并创建复杂的流程图。高度可定制 &#xff1a;支持…...

【网络编程】HTTP(超文本传输协议)详解

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:网络编程 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;HTTP定义 &#x1f4cc;HTTP工作原理 1.客户端发起请求: 2.服务器处理请求: 3.客户端处理响应: &#x1f4cc;HTTP关键特性 &#x1f38f;HTTP请求方法 &am…...

NuttX 与 PX4 系统开发全流程详解

NuttX 与 PX4 系统开发全流程详解 目录 1. NuttX 构建与使用2. NuttX 启动流程解析3. BootLoader 源码分析4. GPIO 驱动机制5. I2C 驱动分析6. PX4 系统架构简析7. uORB 消息机制8. PX4 应用开发示例9. 串口及 GPS 驱动解析10. MAVLink 协议与 PX4 交互 1. NuttX 构建与使用 …...

【Mytais系列】Myatis的设计模式

目录 设计模式 1. 工厂模式&#xff08;Factory Pattern&#xff09; 2. 建造者模式&#xff08;Builder Pattern&#xff09; 3. 动态代理模式&#xff08;Dynamic Proxy Pattern&#xff09; 4. 模板方法模式&#xff08;Template Method Pattern&#xff09; 5. 策略模…...

Linux:进程优先级及环境

一&#xff1a;孤儿进程 在Linux系统中&#xff0c;当一个进程创建了子进程后&#xff0c;如果父进程执行完毕或者提前退出而子进程还在运行&#xff0c;那么子进程就会成为孤儿进程。子进程就会被systemd&#xff08;系统&#xff09;进程收养&#xff0c;其pid为1 myproces…...

网络编程初识

注&#xff1a;此博文为本人学习过程中的笔记 1.socket api 这是操作系统提供的一组api&#xff0c;由传输层向应用层提供。 2.传输层的两个核心协议 传输层的两个核心协议分别是TCP协议和UDP协议&#xff0c;它们的差别非常大&#xff0c;编写代码的风格也不同&#xff0c…...

疾病传播模拟 ——python实操

1、需求 疾病传播模拟 定义一个Infection类,包含初始感染人数、每日感染率等属性,以及一个simulate_spread方法用于模拟疾病传播过程。 使用numpy随机生成初始感染人数(范围1-100)和每日感染率(范围0.01-0.1)。 创建Infection对象,模拟10天的疾病传播过程,每天计算感染…...

用docker ffmpeg测试视频vmaf分数,很快不用编译

之前测试vmaf要自己编译libvmaf&#xff0c;自己编译ffmpeg&#xff0c;巨麻烦&#xff0c;或者用老旧不再维护的docker仓库&#xff0c;最近在docker hub上发现了编译了libvmaf的ffmpeg的docker&#xff0c;而且镜像很小&#xff0c;适合直接运行。 # dest.mp4 评分视频&…...

【浅学】Windows下ffmpeg+nginx+flv将本地视频推流在本地搭建的Web前端页面中播放,超详细步骤

Nginx安装和配置 下载nginx-1.19.3-http-flv 模块预编译包并解压放在d盘&#xff0c;路径就跟安装步骤里说的一样(如下图)&#xff0c;不然会有其他问题出现。 打开conf/nginx.conf&#xff0c;查看RTMP和http相关的配置&#xff0c;确认端口号和路由名称 ffpemg推流视频…...

SQL笔记——左连接、右连接、内连接

前言&#xff1a;总是忘记表连接的区别&#xff0c;在面试的时候也容易被问到&#xff0c;因此就好记性不如烂笔头吧 集合运算 有并集、交集、差集 联合查询*&#xff08;针对行合并的&#xff09;* union为关键字&#xff0c;就是将两个select的结果求并集&#xff08;此时重…...

iOS启动优化:从原理到实践

前言 在iOS应用开发中&#xff0c;启动速度是影响用户体验的重要因素之一。研究表明&#xff0c;启动时间每增加1秒&#xff0c;用户留存率就会下降约7%。本文将深入探讨iOS启动优化的各个方面&#xff0c;从底层原理到具体实践&#xff0c;帮助开发者打造更快的应用启动体验。…...

202553-sql

目录 一、196. 删除重复的电子邮箱 - 力扣&#xff08;LeetCode&#xff09; 二、602. 好友申请 II &#xff1a;谁有最多的好友 - 力扣&#xff08;LeetCode&#xff09; 三、176. 第二高的薪水 - 力扣&#xff08;LeetCode&#xff09; 一、196. 删除重复的电子邮箱 - 力扣…...

Socket-TCP

在TCP/ip协议中&#xff0c;用源IP、源端口号、目的IP、目的端口号、协议号这样一个五元组来标识一个通信&#xff01; 端口号范围划分 0 - 1023: 知名端口号&#xff0c;HTTP&#xff0c;FTP&#xff0c;SSH 等这些广为使用的应用层协议&#xff0c;他们的端口号都是固定的。…...

BOSS的收入 - 华为OD机试(A卷,C++题解)

华为OD机试题库《C》限时优惠 9.9 华为OD机试题库《Python》限时优惠 9.9 华为OD机试题库《JavaScript》限时优惠 9.9 代码不懂有疑问欢迎留言或私我们的VX&#xff1a;code5bug。 题目描述 一个 XX 产品行销总公司&#xff0c;只有一个 boss&#xff0c;其有若干一级分销&…...

神经网络的基本概念与深度解析——基于生物机制的仿生建模与工程实现

广义上讲&#xff0c;神经网络是泛指生物神经网络与人工神经网络这两个方面。所谓生物神经网络是指由中枢神经系统&#xff08;脑和脊髓&#xff09;及周围神经系统&#xff08;感觉神经、运动神经、交感神经、副交感神经等&#xff09;所构成的错综复杂的神经网络&#xff0c;…...

JavaScript基础-运算符优先级

在JavaScript编程中&#xff0c;理解运算符的优先级是编写正确且高效代码的关键之一。当一个表达式包含多个运算符时&#xff0c;JavaScript会根据运算符的优先级来决定执行顺序。如果不了解这些规则&#xff0c;可能会导致意外的结果。本文将详细介绍JavaScript中的运算符优先…...

【RocketMQ NameServer】- NameServer 启动源码

文章目录 1. 前言2. RocketMQ 通信架构3. NameServer 启动流程3.1 创建 NameServerController3.2 启动 NameServerController3.3 NamesrvController#initialize3.3.1 Netty 通信的整体流程3.3.2 创建 NettyRemotingServer 3.4 this.remotingServer.start()3.4.1 this.remotingS…...

Learning vtkjs之WindowedSincPolyDataFilter

过滤器 模型简化&#xff08;光滑处理&#xff09; 介绍 像是对模型进行特征信息的简化&#xff08;光滑处理&#xff09; 效果 核心代码 主要流程 const fullScreenRenderer vtkFullScreenRenderWindow.newInstance({background: [0, 0, 0],rootContainer: vtkContainerR…...

C++ - 数据容器之 forward_list(创建与初始化、元素访问、容量判断、元素遍历、添加元素、删除元素)

一、创建与初始化 引入 <forward_list> 并使用 std 命名空间 #include <forward_list>using namespace std;创建一个空 forward_list forward_list<int> fl;创建一个包含 5 个元素&#xff0c;每个元素初始化为 0 的 forward_list forward_list<int&g…...

ES6/ES11知识点

ES 全称ECMAScript &#xff0c;是脚本语言的规范&#xff0c;javascript是ES的一种实现。 作用域链 在 JavaScript 中&#xff0c;作用域链是一个非常重要的概念&#xff0c;它决定了变量和函数的访问顺序。掌握作用域链有助于深入理解执行上下文、闭包和变量查找等概念。 …...

力扣面试150题--二叉树的最大深度

Day 40 题目描述 做法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right…...

360驱动大师v2.0(含网卡版)驱动工具软件下载及安装教程

1.软件名称&#xff1a;360驱动大师 2.软件版本&#xff1a;2.0 3.软件大小&#xff1a;218 MB 4.安装环境&#xff1a;win7/win10/win11 5.下载地址&#xff1a; https://www.kdocs.cn/l/cdZMwizD2ZL1?RL1MvMTM%3D 提示&#xff1a;先转存后下载&#xff0c;防止资源丢失&…...

Excel-CLI:终端中的轻量级Excel查看器

在数据驱动的今天&#xff0c;Excel 文件处理成为了我们日常工作中不可或缺的一部分。然而&#xff0c;频繁地在图形界面与命令行界面之间切换&#xff0c;不仅效率低下&#xff0c;而且容易出错。现在&#xff0c;有了 Excel-CLI&#xff0c;一款运行在终端中的轻量级Excel查看…...

AI Agent开发第48课-DIFY中利用AI动态判断下一步流程-DIFY调用API、REDIS、LLM

开篇 之前我们在《AI Agent开发第47课-DIFY处理多步流程慢?你确认用对了?》中讲述了DIFY的设计中在整合多步LLM时如避免过多调用LLM的良好设计,并给出了AI工作流的相应设计手法。今天我们要在上一篇的基础上把“上门维修预约”这个流程进一步按照实际业务需求加入用户在整个…...

C# 操作符

C# 操作符 一、操作符概览二、优先级与运算顺序三、各类操作符的实例 一、操作符概览 操作符&#xff08;运算符&#xff09;的本质是函数的简记法 操作符不能脱离与它关联的数据类型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//输出1double a 5.0; double b…...

python下载

一、下载python和IDIE 1.进入python官网 加载可能有点慢&#xff0c;因为是国外网站 下载 点击Downloads按钮&#xff0c;选择版本下载。 安装 勾选两个多选框&#xff0c;点击Install Now安装完成&#xff0c;进入开始菜单&#xff0c;多出一个Python xxx.xxx文件夹&…...

tp5 php获取农历年月日干支甲午

# 切换为国内镜像源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/# 再次尝试安装 composer require overtrue/chinese-calendar核心写法一个农历转公历&#xff0c;一个公历转农历 农历闰月可能被错误标记&#xff08;例如 闰四月 应表示…...

MySQL安装完全指南:从零开始到配置优化(附避坑指南)

&#x1f525; 前言&#xff1a;为什么你总是装不好MySQL&#xff1f; &#xff08;实话实说&#xff09;每次看到新手在MySQL安装环节疯狂踩坑&#xff0c;老司机都忍不住想摔键盘&#xff01;明明官网下载的安装包&#xff0c;怎么就会报错呢&#xff1f;为什么别人的环境变…...

5.3刷题

P3370 【模板】字符串哈希 #include<bits/stdc.h> using namespace std; #define int long long typedef unsigned long long ull; int n; ull myhash(string s){ull code 0, x 131, y 140814840257324663;for(int i 0; i < s.size(); i){code (code * x (ull)…...