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

Python爬虫(22)Python爬虫进阶:Scrapy框架动态页面爬取与高效数据管道设计

目录

      • 一、背景:Scrapy在现代爬虫中的核心价值
      • 二、Scrapy项目快速搭建
        • 1. 环境准备与项目初始化
        • 2. 项目结构解析
      • 三、动态页面处理:集成Splash与中间件
        • 1. 配置Splash渲染服务(Docker部署)
        • 2. 修改settings.py启用中间件
        • 3. 在Spider中处理JavaScript渲染
      • 四、Scrapy核心组件深度解析
        • 1. Spider类:爬虫逻辑中枢
        • 2. Item管道:数据流处理核心
      • 五、性能优化与反爬策略
        • 1. 并发控制与限速
        • 2. 中间件扩展:随机User-Agent
        • 3. IP代理池集成
      • 六、总结与扩展方向
        • 1. 技术优势
        • 2. 典型应用场景
        • 3. 提示‌
        • Python爬虫相关文章(推荐)

一、背景:Scrapy在现代爬虫中的核心价值

随着Web应用复杂度提升,传统爬虫工具(如requests+BeautifulSoup)在应对以下场景时面临瓶颈:

  • ‌多层级页面抓取‌(如电商分类→列表→详情页)
  • ‌分布式任务调度与去重‌
  • ‌动态内容渲染‌(JavaScript/Ajax加载)
  • ‌数据清洗与存储自动化‌

Scrapy作为Python生态中‌专业级爬虫框架‌,通过模块化设计提供完整解决方案:

  • 内置高性能请求调度引擎
  • 支持中间件扩展(动态页面渲染/IP代理)
  • 结构化数据管道(Item Pipeline)
  • 原生支持分布式扩展(Redis/Kafka)

二、Scrapy项目快速搭建

1. 环境准备与项目初始化
# 安装Scrapy及动态渲染依赖
pip install scrapy scrapy-splash selenium# 创建爬虫项目
scrapy startproject product_spider
cd product_spider
scrapy genspider amazon amazon.com
2. 项目结构解析
product_spider/
├── scrapy.cfg
└── product_spider/├── items.py         # 数据模型定义├── middlewares.py   # 中间件扩展(动态渲染/代理)├── pipelines.py     # 数据管道处理├── settings.py      # 全局配置└── spiders/         # 爬虫逻辑└── amazon.py

三、动态页面处理:集成Splash与中间件

1. 配置Splash渲染服务(Docker部署)
docker run -p 8050:8050 scrapinghub/splash
2. 修改settings.py启用中间件
# 启用Splash下载中间件
DOWNLOADER_MIDDLEWARES = {'scrapy_splash.SplashCookiesMiddleware': 723,'scrapy_splash.SplashMiddleware': 725,
}# 配置Splash服务地址
SPLASH_URL = 'http://localhost:8050'# 启用去重过滤
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
3. 在Spider中处理JavaScript渲染
import scrapy
from scrapy_splash import SplashRequestclass AmazonSpider(scrapy.Spider):name = 'amazon'def start_requests(self):url = 'https://www.amazon.com/s?k=python+books'yield SplashRequest(url, args={'wait': 2, 'timeout': 90},  # 等待页面渲染endpoint='render.html')def parse(self, response):# 提取动态加载的商品列表products = response.css('div[data-component-type="s-search-result"]')for product in products:yield {'title': product.css('h2 a::text').get(),'price': product.css('.a-price span::text').get(),'rating': product.css('i.a-icon-star-small span::text').get()}

四、Scrapy核心组件深度解析

1. Spider类:爬虫逻辑中枢
class BookSpider(scrapy.Spider):name = 'book'allowed_domains = ['example.com']custom_settings = {'CONCURRENT_REQUESTS': 16,  # 并发优化'AUTOTHROTTLE_ENABLED': True  # 自动限速}def start_requests(self):# 多入口配置urls = ['https://example.com/category/programming','https://example.com/category/data-science']for url in urls:yield scrapy.Request(url, callback=self.parse_category)def parse_category(self, response):# 分页处理total_pages = response.css('.pagination::attr(data-pages)').get()for page in range(1, int(total_pages)+1):yield SplashRequest(f"{response.url}?page={page}", callback=self.parse_product_list)def parse_product_list(self, response):# 详情页跳转detail_links = response.css('.product-card a::attr(href)').getall()for link in detail_links:yield response.follow(link, self.parse_product_detail)def parse_product_detail(self, response):# 数据提取yield {'ISBN': response.css('#isbn::text').get(),'description': response.xpath('//div[@id="description"]/text()').get(),'author': response.css('.author-info::text').get()}
2. Item管道:数据流处理核心
# items.py
import scrapy
from itemloaders.processors import TakeFirst, MapComposeclass BookItem(scrapy.Item):title = scrapy.Field(input_processor=MapCompose(str.strip),output_processor=TakeFirst())price = scrapy.Field(input_processor=MapCompose(lambda x: x.replace('$', '')),output_processor=TakeFirst())stock = scrapy.Field(output_processor=TakeFirst())# pipelines.py
from itemadapter import ItemAdapter
import pymongoclass MongoPipeline:def __init__(self, mongo_uri, mongo_db):self.mongo_uri = mongo_uriself.mongo_db = mongo_db@classmethoddef from_crawler(cls, crawler):return cls(mongo_uri=crawler.settings.get('MONGO_URI'),mongo_db=crawler.settings.get('MONGO_DATABASE'))def open_spider(self, spider):self.client = pymongo.MongoClient(self.mongo_uri)self.db = self.client[self.mongo_db]def close_spider(self, spider):self.client.close()def process_item(self, item, spider):self.db['books'].insert_one(ItemAdapter(item).asdict())return item# settings.py激活管道
ITEM_PIPELINES = {'product_spider.pipelines.MongoPipeline': 300,
}

五、性能优化与反爬策略

1. 并发控制与限速
# settings.py
CONCURRENT_REQUESTS = 32      # 全局并发数
DOWNLOAD_DELAY = 0.25         # 基础下载延迟
AUTOTHROTTLE_START_DELAY = 5  # 动态限速初始延迟
2. 中间件扩展:随机User-Agent
# middlewares.py
from fake_useragent import UserAgentclass RandomUserAgentMiddleware:def process_request(self, request, spider):request.headers['User-Agent'] = UserAgent().random
3. IP代理池集成
# settings.py
PROXY_POOL_ENABLED = True# middlewares.py
class ProxyMiddleware:def process_request(self, request, spider):request.meta['proxy'] = 'http://proxy_server:port'

六、总结与扩展方向

1. 技术优势
  • 工程化架构‌:模块化设计支持大型项目开发
  • 动态渲染支持‌:通过Splash/Selenium中间件突破
  • ‌数据流控制‌:Item Pipeline实现清洗→验证→存储全链路管理
2. 典型应用场景
  1. 需要登录认证的爬虫系统
  2. 分布式商品价格监控
  3. 社交媒体动态信息采集
  4. 搜索引擎结果抓取
3. 提示‌
  1. 优先使用网站官方API(若有)
  2. 遵守robots.txt协议设置DOWNLOAD_DELAY
  3. 关键数据存储增加MD5去重校验
  4. 使用scrapy shell进行快速调试
Python爬虫相关文章(推荐)
Python爬虫介绍Python爬虫(1)Python爬虫:从原理到实战,一文掌握数据采集核心技术
HTTP协议解析Python爬虫(2)Python爬虫入门:从HTTP协议解析到豆瓣电影数据抓取实战
HTML核心技巧Python爬虫(3)HTML核心技巧:从零掌握class与id选择器,精准定位网页元素
CSS核心机制Python爬虫(4)CSS核心机制:全面解析选择器分类、用法与实战应用
静态页面抓取实战Python爬虫(5)静态页面抓取实战:requests库请求头配置与反反爬策略详解
静态页面解析实战Python爬虫(6)静态页面解析实战:BeautifulSoup与lxml(XPath)高效提取数据指南
Python数据存储实战 CSV文件Python爬虫(7)Python数据存储实战:CSV文件读写与复杂数据处理指南
Python数据存储实战 JSON文件Python爬虫(8)Python数据存储实战:JSON文件读写与复杂结构化数据处理指南
Python数据存储实战 MySQL数据库Python爬虫(9)Python数据存储实战:基于pymysql的MySQL数据库操作详解
Python数据存储实战 MongoDB数据库Python爬虫(10)Python数据存储实战:基于pymongo的MongoDB开发深度指南
Python数据存储实战 NoSQL数据库Python爬虫(11)Python数据存储实战:深入解析NoSQL数据库的核心应用与实战
Python爬虫数据存储必备技能:JSON Schema校验Python爬虫(12)Python爬虫数据存储必备技能:JSON Schema校验实战与数据质量守护
Python爬虫数据安全存储指南:AES加密Python爬虫(13)数据安全存储指南:AES加密实战与敏感数据防护策略
Python爬虫数据存储新范式:云原生NoSQL服务Python爬虫(14)Python爬虫数据存储新范式:云原生NoSQL服务实战与运维成本革命
Python爬虫数据存储新维度:AI驱动的数据库自治Python爬虫(15)Python爬虫数据存储新维度:AI驱动的数据库自治与智能优化实战
Python爬虫数据存储新维度:Redis Edge近端计算赋能Python爬虫(16)Python爬虫数据存储新维度:Redis Edge近端计算赋能实时数据处理革命
反爬攻防战:随机请求头实战指南Python爬虫(17)反爬攻防战:随机请求头实战指南(fake_useragent库深度解析)
反爬攻防战:动态IP池构建与代理IPPython爬虫(18)反爬攻防战:动态IP池构建与代理IP实战指南(突破95%反爬封禁率)
Python爬虫破局动态页面:全链路解析Python爬虫(19)Python爬虫破局动态页面:逆向工程与无头浏览器全链路解析(从原理到企业级实战)
Python爬虫数据存储技巧:二进制格式性能优化Python爬虫(20)Python爬虫数据存储技巧:二进制格式(Pickle/Parquet)性能优化实战
Python爬虫进阶:Selenium自动化处理动态页面Python爬虫(21)Python爬虫进阶:Selenium自动化处理动态页面实战解析

相关文章:

Python爬虫(22)Python爬虫进阶:Scrapy框架动态页面爬取与高效数据管道设计

目录 一、背景:Scrapy在现代爬虫中的核心价值二、Scrapy项目快速搭建1. 环境准备与项目初始化2. 项目结构解析 三、动态页面处理:集成Splash与中间件1. 配置Splash渲染服务(Docker部署)2. 修改settings.py启用中间件3. 在Spider中…...

全球实物文件粉碎服务市场洞察:合规驱动下的安全经济与绿色转型

一、引言:从纸质堆叠到数据安全的“最后一公里” 在数字化转型浪潮中,全球企业每年仍产生超过1.2万亿页纸质文件,其中包含大量机密数据、客户隐私及商业敏感信息。据QYResearch预测,2031年全球实物文件粉碎服务市场规模将达290.4…...

使用Python 打造多格式文件预览工具 — 图、PDF、Word、Excel 一站式查看

在日常办公或文件管理场景中,我们经常面临这样的问题:在一个文件夹中短时间内产生了大量不同类型的文件(如图片、PDF、Word、Excel),我们需要快速浏览和筛选这些文件的内容,却不希望一个个打开它们。有没有…...

Microsoft 365 Copilot:为Teams在线会议带来多语言语音交流新体验

随着AI技术的飞速发展,Microsoft 365 Copilot将大型语言模型(LLM)与业务数据深度融合,为用户带来了前所未有的办公体验。在Teams在线会议中,Copilot不仅能够作为智能助手提升会议效率,还能通过实时辅助同声…...

c++:双向链表容器(std::list)

目录 🧱 一、什么是 std::list? ⚙️ 二、底层结构图解 🧪 三、list 的常见操作 📦 四、完整示例代码 📌 五、特点总结对比 🛠 六、特殊函数 📚 七、list 迭代器操作 ⚠️ 八、使用场景…...

jenkins 启动报错

java.lang.UnsatisfiedLinkError: /opt/application/jdk-17.0.11/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory。 解决方案: yum install freetype-devel 安装完成之后重启jenkins。...

输入顶点坐标输出立方体长宽高的神经网络

写一个神经网络,我输入立方体投影线段的三视图坐标,输出分类和长宽高 import torch from torch import nn import torch.nn.functional as F# 假设每个视图有8个顶点,每个顶点有2个坐标值,因此每种视图有16个输入特征 input_dim…...

Layui表格行点击事件监听

​ 在 Layui 中,如果想监听表格行的点击事件,可以通过以下步骤实现: 初始化表格:首先确保你已经使用 Layui 的 table.render 方法成功渲染了你的表格。绑定行点击事件:Layui 并没有直接提供针对表格行点击的事件监听器…...

2025数维杯数学建模竞赛B题完整参考论文(共38页)(含模型、代码、数据)

2025数维杯数学建模竞赛B题完整参考论文 目录 摘要 一、问题重述 二、问题分析 三、模型假设 四、定义与符号说明 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1求解结果 5.2问题2 5.2.1问题2思路分析 5.2.2问题2…...

TCP套接字通信核心要点

TCP套接字通信核心要点 通信模型架构 客户端-服务端模型 CS架构:客户端发起请求,服务端响应和处理请求双向通道:建立连接后实现全双工通信 服务端搭建流程 核心步骤 创建套接字 int server socket(AF_INET, SOCK_STREAM, 0); 参数说明&am…...

Android屏蔽通话功能和短信功能

需求开发中&#xff0c;有个要求屏蔽电话功能和短信功能&#xff0c;禁止应用打电话或短信&#xff0c;禁止api开发出的应用打电话或短信。这个约束怎么做呢&#xff1f; framework/base/core/res/res/values/config.xml.....<!-- Flag indicating whether the current devi…...

STM32TIM定时中断(6)

一、TIM介绍 1、TIM简介 TIM&#xff08;Timer&#xff09;定时器 定时器的基本功能&#xff1a;定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断。 即定时触发中断&#xff0c;同时也可以看出&#xff0c;定时器就是一个计数器&#xff0c;当…...

hz2新建Keyword页面

新建一个single-keywords.php即可&#xff0c;需要筛选项再建taxonomy-knowledge-category.php 参考&#xff1a;https://www.tkwlkj.com/customize-wordpress-category-pages.html WordPress中使用了ACF创建了自定义产品分类products&#xff0c;现在想实现自定义产品分类下的…...

STL?vector!!!

一、前言 之前我们借助手撕string加深了类和对象相关知识&#xff0c;今天我们将一起手撕一个vector&#xff0c;继续深化类和对象、动态内存管理、模板的相关知识 二、vector相关的前置知识 1、什么是vector&#xff1f; vector是一个STL库中提供的类模板&#xff0c;它是存储…...

Android SDK

Windows纯净卸载Android SDK 1.关闭所有安卓相关的程序 Android StudioEmulators 如模拟器Command prompts using SDK 如appium服务 2.移除SDK相关目录 # Delete your SDK directory F:\android_sdk\android-sdk-windows# Also check and remove if present: $env:LOCALAPP…...

老旧 LabVIEW 系统升级改造

在工业自动化领域&#xff0c;LabVIEW 凭借其直观的图形化编程方式和强大的数据处理能力&#xff0c;成为开发测试测量与控制系统的主流平台。然而&#xff0c;随着技术的快速迭代和业务需求的不断变化&#xff0c;许多早期开发的 LabVIEW 系统逐渐暴露出性能不足、功能缺失或兼…...

【IDEA_Maven】(进阶版)永久性的更改IDEA中每个项目所依赖的Maven默认配置文件及其仓库路径

【IDEA_Maven】永久性的更改IDEA中每个项目所依赖的Maven默认配置文件及其仓库路径 问题解决 问题 Maven使用在线导入&#xff0c;在网络不佳时&#xff0c;往往加载很慢。十分浪费时间&#xff0c;所以我们需要在maven官网找到合适版本的maven&#xff0c;将其压缩包下载下来…...

VSCode远程无法选择虚拟环境问题

1. 无法选择虚拟环境 1.先保证扩展安装正确&#xff0c; 安装python&#xff0c;pylance和intelliCode 2. 直接在设置&#xff08;ctrl shift p&#xff09;里面搜索&#xff0c;点击“Python:Select Interpreter”选项 3. 可能有人会出现第三步的问题&#xff0c;参考链接…...

七、Hadoop 历史追踪、数据安全阀与 MapReduce初体验

Hadoop 实战拾遗&#xff1a;作业历史追踪、数据安全阀与 MapReduce 巧算 π 一、追溯作业足迹&#xff1a;JobHistory Server 的配置与使用 Hadoop 集群高效运行的背后&#xff0c;离不开对已完成作业的细致分析。JobHistory Server (JHS) 就像是作业的“黑匣子”&#xff0…...

【MySQL】联合查询

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 一、什么是联合查询 1.概念 2.语法要求 3.示例 4.为什么要使用联合查询 内连接 1.概念 2.语法 3.步骤&#xff1a; 外连接 1.概念 2.分类&#xff1a; 左外连…...

Java 原生实现代码沙箱(OJ判题系统第1期)——设计思路、实现步骤、代码实现

设计思路&#xff1a; 1、保存代码文件 ✅ 目的&#xff1a; 将用户提交的源码以字符串形式写入磁盘&#xff0c;生成 .java 文件。 &#x1f4cc; 原因&#xff1a; Java 是静态语言&#xff0c;必须先编译成 .class 文件才能运行。 需要物理文件路径来调用 javac 或使用 Java…...

课程设计。。。。

人脸考勤系统 需求分析 需求 1.实现企业日常人脸打卡需求 2.管理员要可以管理相关数据 3.可以移植到相关嵌入式设备 …..需求主要是这些&#xff0c;还可以让ai拓展一点 实现 1.介于可移植性这个需求&#xff0c;选用Qt框架&#xff0c;Qt框架跨平台性特比好&#xff0…...

gitlab相关面试题及答案

一、GitLab 基础 1. 什么是 GitLab&#xff1f;它与 GitHub 有什么区别&#xff1f; 答案&#xff1a; GitLab 是一个开源的 DevOps 平台&#xff0c;提供代码托管、CI/CD、问题跟踪等功能。与 GitHub 的主要区别&#xff1a; 开源与商业&#xff1a;GitLab 社区版开源&#x…...

『不废话』之Python 3.14 Beta版新特性

Python 3.14 的第一个Beta版已发布&#xff0c;有几个新特性可以提高我们的编码效率。 未来注释 在上一篇《『不废话』之Python高级特性技巧-CSDN博客》中提到3.7中新增了 “未来注释”&#xff0c;可以使用“from __future__ import annotations”或双引号包括的方式解决当类…...

AWS之数据分析类产品

以下是 Amazon Athena、Amazon QuickSight、AWS Lake Formation、AWS Glue、Amazon OpenSearch Service&#xff08;原 Elasticsearch Service&#xff09;、Amazon Kinesis Data Analytics 和 Amazon Redshift 的核心区别及典型使用场景的对比分析&#xff1a; 1. Amazon Athe…...

RabbitMQ消息的重复消费问题如何解决?

在RabbitMQ中&#xff0c;消息重复消费是一个常见问题&#xff0c;它通常发生在消费者处理消息时出现网络波动、节点故障或消费者自身处理逻辑异常&#xff0c;ACK 失败等情况&#xff0c;都会导致RabbitMQ 不能够正确感知消息已被成功处理&#xff0c;从而重新投递消息。以下是…...

5月9号.

v-for: v-bind: v-if&v-show: v-model: v-on: Ajax: Axios: async&await: Vue生命周期: Maven: Maven坐标:...

如何减少极狐GitLab 容器镜像库存储?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 减少容器镜像库存储 (BASIC ALL) 未清理的容器镜像库会随着时间的推移而变大。添加大量镜像或标签时&#xff1a; 获取可用标…...

怎么用idea打jar包

背景 前端使用vue开发&#xff0c;打包生成dist文件&#xff0c;需要打包成jar包 步骤 前端的dict文件放到后端的src\main\resources目录下dict文件夹改名为staticidea打开后端代码&#xff0c;依次点击右侧maven下的clean 、package最后会在项目的target目录下生成jar&…...

03 mysql 连接

安装 MySQL 后,我们就需要连接它。 使用命令行方式连接使用图形化工具连接一、使用命令行客户端连接 在上一节内容02 mysql 管理(Windows版)-CSDN博客 我们采用的就是这个连接方法,这种方法直接连接的是root用户,找到该命令行属性,打开可以看到里面的参数是root: 这种…...

Jenkins集成Maven

一、概述 Jenkins是一个开源的持续集成工具&#xff0c;用于自动化各种开发任务。Maven是一个项目管理和构建自动化工具&#xff0c;主要用于Java项目。通过将Jenkins和Maven集成&#xff0c;可以实现自动化构建、测试和部署&#xff0c;提高开发效率和代码质量。 二、前提条…...

Qwen智能体qwen_agent与Assistant功能初探

Qwen智能体qwen_agent与Assistant功能初探 一、Qwen智能体框架概述 Qwen&#xff08;通义千问&#xff09;智能体框架是阿里云推出的新一代AI智能体开发平台&#xff0c;其核心模块qwen_agent.agent提供了一套完整的智能体构建解决方案。该框架通过模块化设计&#xff0c;将L…...

Linux——MySQL基础

基础知识 连接服务器 mysql -h 127.0.0.1 -P 3306 -u root -p -h 指明登录部署了myqsl服务的主机 -P 指明访问的端口号 -u 指明用户 -p 指明登录密码&#xff08;可以不填写&#xff09; 什么是数据库 首先&#xff0c;数据库是分为服务端和客户端的&#xff1a; mysql是客户…...

k8s监控方案实践(二):集成Alertmanager告警与钉钉Webhook通知

k8s监控方案实践&#xff08;二&#xff09;&#xff1a; 集成Alertmanager告警与钉钉Webhook通知 文章目录 k8s监控方案实践&#xff08;二&#xff09;&#xff1a; 集成Alertmanager告警与钉钉Webhook通知一、Alertmanager简介1. 什么是Alertmanager&#xff1f;2. Promethe…...

学习threejs,使用Physijs物理引擎

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Physijs 物理引擎1.1.1 ☘️…...

UG471 之 SelectIO 逻辑资源

背景 《ug471》介绍了Xilinx 7 系列 SelectIO 的输入/输出特性及逻辑资源的相关内容。 第 1 章《SelectIO Resources》介绍了输出驱动器和输入接收器的电气特性&#xff0c;并通过大量实例解析了各类标准接口的实现。 第 2 章《SelectIO Logic Resources》介绍了输入输出数据…...

基于HISI3519dv500的yolov8-obb车位检测

1. 数据标注 标注软件&#xff1a;roLabelImg 安装方式&#xff1a;见 https://github.com/cgvict/roLabelImg.git 操作指南&#xff1a; 标注后的数据格式如下&#xff1a; <annotation verified"no"><folder>4800</folder><filename>fr…...

Prometheus生产实战全流程详解(存储/负载/调度篇)

一、存储架构实战&#xff08;TSDB深度优化&#xff09; 1. 存储拓扑设计 2. 关键参数调优 4. 性能压测对照表 二、负载治理实战&#xff08;百万级Series管控&#xff09; 三、调度优化实战&#xff08;精准采集控制&#xff09; 2. 优先级调度配置 3. 自适应抓取调整 4…...

Mac电脑远程连接window系统服务器

1.下载 首先需要下载Microsoft Remote Desktop软件&#xff0c;下载链接如下&#xff1a; https://go.microsoft.com/fwlink/?linkid868963 2、软件下载成功后&#xff0c;可按照引导程序进行安装&#xff0c;成功后进入软件&#xff0c;可看到如下界面&#xff1a;...

【Qt】编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64

【Qt】编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64 目录 【Qt】编译 Qt 5.15.x For Windows 基础教程 Visual Studio 2019 MSVC142 x64准备工作&#xff1a;&#xff08;必须&#xff09;第一步&#xff1a;第二步&#xff1a;第三步&#xff1a; 建议…...

【Qt】之【Bug】点击按钮(ui->pushButton)触发非本类设置的槽函数

解决 先说解决办法&#xff0c;按钮在ui为默认命名ui->pushButton,后面改了下按钮名为该按钮的功能相关&#xff0c;就不会随意触发其他槽函数了。 没想到是这个原因。。。 可能是之前默认的objectName与旧的槽函数自动连接了 记录一下&#xff0c;找了好久其他的原因。 以…...

buck和boost总结

目录 1. 基本概念与原理 2. 工作模式 3. 典型应用场景 4. Buck-Boost电路&#xff1a;升降压结合 5. 核心区别与选择 1. 基本概念与原理 Buck电路&#xff08;降压电路&#xff09; 通过开关器件&#xff08;如MOSFET&#xff09;周期性地导通和关断&#xff0c;控制电感充…...

rtsp,。。。。

下面是基于 FFmpeg H.264 RTSP GStreamer 的低延时视频传输方案的详细搭建指南。此方案可将延迟控制在 <100ms&#xff0c;适合远程驾驶、监控等实时性要求较高的应用场景。 &#x1f4e6; 方案架构 摄像头&#xff08;OpenCV&#xff09;→ FFmpeg&#xff08;H.264编码…...

微信小程序地图缩放scale隐性bug

bug1 在真机环境下通过this.mapCtx.getScale获取当前地图的缩放等级带小数&#xff0c; 当设置scale带小数时&#xff0c;地图会先执行到缩放到带小数的缩放等级&#xff0c;然后会再次缩放取整的缩放等级&#xff08;具体向上取整还是向下取整未知&#xff0c;两种情况都观察…...

Java中关于多态的总结

多态是面向对象编程的三大特性之一&#xff08;封装、继承、多态&#xff09;&#xff0c;它允许不同类的对象对同一消息做出不同的响应。 多态的基本概念 1、定义 多态(Polymorphism)指同一操作作用于不同的对象&#xff0c;可以有不同的解释&#xff0c;产生不同的执行结果…...

突破跨界传输瓶颈:Zynq OCM与DDR核间数据共享性能深度调优

一、当硬件加速遇上内存墙:Zynq数据共享的终极挑战 在某军工雷达信号处理项目中,工程师小王遇到了棘手难题——通过Zynq的ARM核与FPGA协同处理雷达回波数据时,系统吞吐量始终无法突破200MB/s的瓶颈。经过三天三夜的排查,发现问题的根源竟是OCM与DDR之间的数据传输效率不足…...

基于 Ubuntu 24.04 部署 WebDAV

无域名&#xff0c;HTTP 1. 简介 WebDAV&#xff08;Web Distributed Authoring and Versioning&#xff09;是一种基于 HTTP 的协议&#xff0c;允许用户通过网络直接编辑和管理服务器上的文件。本教程介绍如何在 Ubuntu 24.04 上使用 Apache2 搭建 WebDAV 服务&#xff0c;无…...

JVM、JRE、JDK的区别

JVM JVM全称Java虚拟机(Java Virtual Machine, JVM),它是运行java字节码的虚拟机&#xff0c;JVM针对不同的系统有不同的实现&#xff0c;目的运行相同的字节码有同样的结果&#xff0c;JVM是“一次编译&#xff0c;到处运行”实现的关键。如下不同的编程语言编译生成字节码文…...

解密火星文:LeetCode 269 题详解与 Swift 实现

文章目录 摘要描述题解答案题解代码分析构建图&#xff08;Graph&#xff09;拓扑排序&#xff08;Topological Sort&#xff09; 示例测试及结果时间复杂度空间复杂度实际场景类比总结 摘要 这篇文章我们来聊聊 LeetCode 269 题&#xff1a;火星词典&#xff08;Alien Dictio…...

系统思考:短期困境与长期收益

最近在项目中&#xff0c;一直有学员会提到一个议题&#xff0c;如何平衡当前困境和长期收益&#xff1f; 我的思考是在商业和人生的路上&#xff0c;我们常常听到“鱼和熊掌不可兼得”的说法&#xff0c;似乎短期利益和长期目标注定是对立的。但事实上&#xff0c;鱼与熊掌是…...