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

Python爬虫(32)Python爬虫高阶:动态页面处理与Scrapy+Selenium+BeautifulSoup分布式架构深度解析实战

目录

    • 引言
    • 一、动态页面爬取的技术背景
      • 1.1 动态页面的核心特征
      • 1.2 传统爬虫的局限性
    • 二、技术选型与架构设计
      • 2.1 核心组件分析
      • 2.2 架构设计思路
        • 1. 分层处理
        • 2. 数据流
    • 三、代码实现与关键技术
      • 3.1 Selenium与Scrapy的中间件集成
      • 3.2 BeautifulSoup与Scrapy Item的整合
      • 3.3 分布式爬取实现
        • 3.3.1 Scrapy-Redis部署
        • 3.3.2 多节点启动
    • 四、优化与扩展
      • 4.1 性能优化策略
        • 4.1.1 Selenium优化
        • 4.1.2 解析优化
      • 4.2 反爬对抗技术
        • 4.2.1 浏览器指纹模拟
        • 4.2.2 行为模拟
    • 五、总结
      • Python爬虫相关文章(推荐)

引言

在Web数据采集领域,动态页面(如SPA单页应用、AJAX异步加载)已成为主流技术形态。这类页面通过JavaScript动态渲染内容,传统基于HTTP请求的爬虫框架(如Scrapy)难以直接获取完整数据。本文将结合实际案例,深入探讨如何通过Selenium自动化操作浏览器BeautifulSoup精准解析Scrapy分布式框架的深度整合,构建一套高效、可扩展的动态爬虫系统

一、动态页面爬取的技术背景

1.1 动态页面的核心特征

异步数据加载:通过XHR/Fetch请求从后端API获取数据,而非直接返回HTML。
行为依赖渲染:需模拟滚动、点击等操作触发内容加载(如“加载更多”按钮)。
前端框架主导:React/Vue等框架构建的页面,内容由JavaScript动态生成。

1.2 传统爬虫的局限性

静态解析失效:Scrapy默认通过requests库获取初始HTML,无法执行JavaScript。
反爬机制增强:动态页面常结合验证码、行为检测(如鼠标轨迹)提升防护强度。

二、技术选型与架构设计

2.1 核心组件分析

组件角色优势
Scrapy分布式爬虫框架高并发请求、异步处理、内置Pipeline
Selenium浏览器自动化工具模拟真实用户操作,支持动态渲染
BeautifulSoupHTML解析器轻量级、易用,适合结构化数据提取

2.2 架构设计思路

1. 分层处理

渲染层:Selenium负责动态页面渲染。
解析层:BeautifulSoup处理渲染后的HTML。
调度层:Scrapy管理请求队列与分布式任务分发。

2. 数据流
Scrapy框架
Selenium驱动
动态页面渲染
BeautifulSoup解析
结构化数据
数据存储

三、代码实现与关键技术

3.1 Selenium与Scrapy的中间件集成

# middlewares/selenium_middleware.py
from scrapy.http import HtmlResponse
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsclass SeleniumMiddleware:def __init__(self):self.options = Options()self.options.add_argument('--headless')  # 无头模式self.options.add_argument('--disable-gpu')def process_request(self, request, spider):driver = webdriver.Chrome(options=self.options)try:driver.get(request.url)# 模拟用户操作(如滚动到底部)self._scroll_to_bottom(driver)html = driver.page_sourcereturn HtmlResponse(driver.current_url, body=html, encoding='utf-8', request=request)finally:driver.quit()def _scroll_to_bottom(self, driver):last_height = driver.execute_script("return document.body.scrollHeight")while True:driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(2)  # 等待加载new_height = driver.execute_script("return document.body.scrollHeight")if new_height == last_height:breaklast_height = new_height

3.2 BeautifulSoup与Scrapy Item的整合

# spiders/dynamic_spider.py
import scrapy
from bs4 import BeautifulSoup
from items import ProductItem  # 自定义Itemclass DynamicSpider(scrapy.Spider):name = 'dynamic_spider'start_urls = ['https://example.com/dynamic-page']def parse(self, response):soup = BeautifulSoup(response.text, 'html.parser')products = soup.find_all('div', class_='product-item')for product in products:item = ProductItem()item['name'] = product.find('h2').text.strip()item['price'] = product.find('span', class_='price').text.strip()yield item# 处理分页(动态加载场景)next_page = soup.find('a', class_='next-page')if next_page:yield scrapy.Request(next_page['href'], callback=self.parse)

3.3 分布式爬取实现

3.3.1 Scrapy-Redis部署
  1. 安装依赖:
pip install scrapy-redis
  1. 配置settings.py:
# 启用Redis调度器
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
REDIS_HOST = 'localhost'
REDIS_PORT = 6379
3.3.2 多节点启动
  • 启动Redis服务:
redis-server
  • 启动多个爬虫节点:
scrapy runspider dynamic_spider.py -s JOBDIR=crawls/spider1
scrapy runspider dynamic_spider.py -s JOBDIR=crawls/spider2

四、优化与扩展

4.1 性能优化策略

4.1.1 Selenium优化
  • 使用undetected-chromedriver绕过反爬检测。
  • 启用浏览器缓存:options.add_argument(‘–disk-cache-size=100000000’)
4.1.2 解析优化
  • BeautifulSoup结合CSS选择器:soup.select(‘div.product > h2’)
  • 批量处理Item:使用ItemLoader减少代码冗余。

4.2 反爬对抗技术

4.2.1 浏览器指纹模拟
# 修改Selenium的WebDriver指纹
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.CHROME
caps['goog:loggingPrefs'] = {'performance': 'ALL'}
4.2.2 行为模拟
  • 随机化鼠标移动轨迹
  • 模拟人类操作间隔:time.sleep(random.uniform(1, 3))

五、总结

本文通过Scrapy+Selenium+BeautifulSoup的组合,解决了动态页面爬取的核心痛点:

Selenium实现动态渲染,突破JavaScript限制。
BeautifulSoup提供轻量级解析,与Scrapy Item无缝集成。
Scrapy-Redis实现分布式爬取,支持多节点协作。

该架构已在实际项目中验证,可高效处理日均百万级动态页面爬取任务。未来可进一步探索:

Playwright替代Selenium:支持更现代的浏览器控制(如多标签页管理)。
结合机器学习:通过行为模式识别绕过更复杂的反爬机制。

通过本文的学习,可掌握动态爬虫的核心技术栈,并具备构建高可用爬虫系统的能力。该架构兼顾了开发效率与性能,是处理复杂Web数据采集任务的理想选择。

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爬虫:Scrapy框架动态页面爬取与高效数据管道设计Python爬虫(22)Python爬虫进阶:Scrapy框架动态页面爬取与高效数据管道设计
Python爬虫性能飞跃:多线程与异步IO双引擎加速实战Python爬虫(23)Python爬虫性能飞跃:多线程与异步IO双引擎加速实战(concurrent.futures/aiohttp)
Python分布式爬虫架构实战:Scrapy-Redis亿级数据抓取方案设计Python爬虫(24)Python分布式爬虫架构实战:Scrapy-Redis亿级数据抓取方案设计
Python爬虫数据清洗实战:Pandas结构化数据处理全指南Python爬虫(25)Python爬虫数据清洗实战:Pandas结构化数据处理全指南(去重/缺失值/异常值)
Python爬虫高阶:Scrapy+Selenium分布式动态爬虫架构实践Python爬虫(26)Python爬虫高阶:Scrapy+Selenium分布式动态爬虫架构实践
Python爬虫高阶:双剑合璧Selenium动态渲染+BeautifulSoup静态解析实战Python爬虫(27)Python爬虫高阶:双剑合璧Selenium动态渲染+BeautifulSoup静态解析实战
Python爬虫高阶:Selenium+Splash双引擎渲染实战与性能优化Python爬虫(28)Python爬虫高阶:Selenium+Splash双引擎渲染实战与性能优化
Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)
Python爬虫高阶:Selenium+Scrapy+Playwright融合架构Python爬虫(30)Python爬虫高阶:Selenium+Scrapy+Playwright融合架构,攻克动态页面与高反爬场景
Python爬虫高阶:动态页面处理与Scrapy+Selenium+Celery弹性伸缩架构实战Python爬虫(31)Python爬虫高阶:动态页面处理与Scrapy+Selenium+Celery弹性伸缩架构实战

相关文章:

Python爬虫(32)Python爬虫高阶:动态页面处理与Scrapy+Selenium+BeautifulSoup分布式架构深度解析实战

目录 引言一、动态页面爬取的技术背景1.1 动态页面的核心特征1.2 传统爬虫的局限性 二、技术选型与架构设计2.1 核心组件分析2.2 架构设计思路1. 分层处理2. 数据流 三、代码实现与关键技术3.1 Selenium与Scrapy的中间件集成3.2 BeautifulSoup与Scrapy Item的整合3.3 分布式爬取…...

[案例七] NX二次开发标识特征的导入与布尔运算

本来做的是案例六NX二次开发减重块。但是当时在处理导入指定面时发现坐标转化存在很大问题,开了我很长时间,太难受了,决定放一放,昨天做了第六个案例采取了一种补救方法(实在不会的一种解决思路),个人认为NX这么优秀的软件应该有更好的方法,坐标转化真让人头大。刚开始…...

Canvas进阶篇:鼠标交互动画

Canvas进阶篇:鼠标交互动画 前言获取鼠标坐标鼠标事件点击事件监听代码示例效果预览 拖动事件监听代码示例效果预览 结语 前言 在上一篇文章Canvas进阶篇:基本动画详解 中,我们讲述了在Canvas中实现动画的基本步骤和动画的绘制方法。本文将进…...

Axure项目实战:智慧运输平台后台管理端-订单管理2(多级交互)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢!如有帮助请订阅专栏! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:订单管理2 主要内容:中继器筛选、表单跟随菜单拖动、审批数据互通等 应用场景:订单管理…...

AG-UI:重构AI代理与前端交互的下一代协议标准

目录 技术演进背景与核心价值协议架构与技术原理深度解析核心功能与标准化事件体系典型应用场景与实战案例开发者生态与集成指南行业影响与未来展望1. 技术演进背景与核心价值 1.1 AI交互的三大痛点 当前AI应用生态面临三大核心挑战: 交互碎片化:LangGraph、CrewAI等框架各…...

鸿蒙版Flutter库torch_light手电筒功能深度适配

鸿蒙版Flutter库torch_light手电筒功能深度适配:跨平台开发者的光明之路 本项目作者:kirk/坚果 适配仓库地址 作者仓库:https://github.com/svprdga/torch_light# 在数字化浪潮的推动下,跨平台开发框架如 Flutter 凭借其高效、…...

【JAVA】中文我该怎么排序?

📘 Java 中文排序教学文档(基于 Collator) 🧠 目录 概述Java 中字符串排序的默认行为为什么需要 Collator使用 Collator 进行中文排序升序 vs 降序排序自定义对象字段排序多字段排序示例总结对比表附录:完整代码示例 …...

WPF MVVM Community Toolkit. Mvvm 社区框架

Community Toolkit. Mvvm 社区框架 微软官方文档 主要内容:CommunityToolkit.Mvvm 框架 概念,安装,使用(重要API:ObservableObject,RelayCommand)源生成器([ObservableProperty]&…...

云原生安全之PaaS:从基础到实践的技术指南

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 云原生安全之PaaS:从基础到实践的技术指南 一、基础概念 PaaS(Platform as a Service)平台 PaaS是一种云计算服务模型,为开发者提供应用程序的开发、部署和运行环境,涵…...

软件设计师考试需背诵知识点

1. 网络技术标准与协议 2. OSI/RM七层模型 3. 对称加密算法 4. 常见的非对称加密算法 5. 排序算法比较 6. 海明码公式 设数据位是n位,校验位是k位,则n与k必须满足以下关系: 7. McCabe度量法 McCabe度量法的核心公式为: V(G)E−…...

智慧社区新防线:华奥系AI技术如何让夏季安防“零隐患”

夏季社区安防隐患频发 随着夏季高温、暴雨、台风等极端天气增多,社区安全风险显著上升。高空建筑外墙材料因暴晒脱落、地下管道锈蚀堵塞导致积水、电动车充电自燃等事件频发,传统“人防物防”模式响应滞后、管理粗放,难以满足精细化防控需求…...

pinia的简单使用

yarn add pinia // 用来存储token,用户信息,等需要多地方使用的信息 src目录下新建store文件夹->新建index.ts import { createPinia } from "pinia";const store createPinia()export default storemain.ts 引用store import { createApp } from v…...

【Linux笔记】——线程池项目与线程安全单例模式

🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹: 【Linux笔记】——简单实习一个日志项目 🔖流水不争,争的是滔滔不息 一、线程池设计二…...

用户有一个Django模型没有设置主键,现在需要设置主键。

用户有一个Django模型没有设置主键,现在需要设置主键。 from django.db import modelsclass CategoryAssistentModel(models.Model):second_level_category models.CharField(max_length100, nullTrue, blankTrue)third_level_category models.CharField(max_len…...

SkyWalking 报错:sw_profile_task 索引缺失问题分析与解决

文章目录 SkyWalking 报错:sw_profile_task 索引缺失问题分析与解决问题背景SkyWalking 是否会自动创建 sw_profile_task 索引?答案:不会在初始化时创建相关索引包括: 问题原因分析解决方案✅ 解决思路:手动创建 sw_pr…...

多模态学习笔记

在模态对齐任务中,同一时刻不同类型的数据(模态)需要做好对齐,才能更好的感知内容,下面对其常见的多模态对齐任务进行如下总结: (1)文本图像 图像和文本特征提取后的对齐方法主要分为两类:基于对比学习的方法和基于跨模态注意力的方法。以下是它们的细化说明及具体实…...

【 Redis | 实战篇 扩展 】

目录 前言: 1.达人探店功能 1.1.点赞功能 1.2.排行榜 2.关注 2.1.共同关注 2.2.关注推送 3.附近商铺 3.1.GEO基本用法 3.2.获取附近商铺 4.签到 4.1.BitMap 4.2.实现签到 4.3.统计连续签到 5.UV统计 前言: 实现达人探店,好友…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)

目录 1 -> 工作原理 2 -> 约束与限制 2.1 -> 支持的设备 2.2 -> 支持的国家/地区 2.3 -> 支持的签名方式 3 -> 总结 3.1 -> 关键功能与工具 3.2 -> 开发流程 3.3 -> 典型场景与优化 3.4 -> 常见问题与解决 3.5 -> 总结 1 -> 工…...

空调系统虚拟标定技术:新能源汽车能效优化的革命性突破

title: 空调系统虚拟标定技术:新能源汽车能效优化的革命性突破 date: 2025-05-15 categories: 新能源汽车技术 tags: [空调系统, 虚拟标定, PID控制, 数字孪生, 能效优化] description: 本文深度解析空调系统虚拟标定技术在新能源汽车中的应用,揭秘如何…...

MCP Server开发并使用自定义天气查询工具查询城市天气

1.本地安装node.js环境 2.本地创建mcp文件夹,搭建mcp环境 在文件夹下cmd执行npm init -y初始化npm项目 3.创建weather-server.js文件,代码如下 // weather-server.js import { McpServer } from "modelcontextprotocol/sdk/server/mcp.js"…...

virtualbox选项“启用套嵌vt-x/amd-v“不可用

“启用套嵌vt-x/amd-v”选项不可用。 解决方法: 切换到virtualbox安装目录,执行如下命令查看虚拟机名称: .\VBoxManage.exe list vms比如返回: winxp 执行如下命令开启64位,注意把"winxp"换成你的虚拟机名字&#x…...

windows powershell 判断 进程号是否存在

在 Windows PowerShell 中,你可以使用多种方法来检查一个特定的进程号(PID)是否存在。以下是几种常用的方法: 方法1:使用 Get-Process 命令 你可以尝试获取具有特定 PID 的进程。如果该进程存在,Get-Proce…...

JAVA SE 多线程(下)

文章目录 📕1. 常见的锁策略✏️1.1 乐观锁VS悲观锁✏️1.2 轻量级锁VS重量级锁✏️1.3 自旋锁✏️1.4 公平锁VS非公平锁✏️1.5 可重入锁和不可重入锁✏️1.6 读写锁 📕2. 死锁✏️2.1 哲学家就餐问题✏️2.2 形成死锁的必要条件✏️2.3 如何避免死锁 &…...

DeepSeek+Dify之九多模态大模型识别图片

Dify之八添加各种在线大模型 文章目录 背景整体流程测试数据用到的节点开始列表操作LLM结束实现步骤1、新建工作流2、开始节点3、列表操作4、LLM节点(多模态大模型检索)5、结束节点测试发布导出背景 有了上一篇文章的基础,现在可以了解下多模态大模型识别图片的工作流 整体…...

软件工程(七):MQTT协议

概念 特性描述协议类型应用层协议(基于 TCP/IP)通信模式发布/订阅(Publish/Subscribe)网络开销小报文头仅 2 字节起,非常轻量保持长连接使用 Keep Alive 机制,适合持续连接的设备面向物联网广泛用于智能家…...

网络 :网络基础【网络框架认识】

网络 :网络基础【对网络的认识】 (一)网络发展(二)协议1、协议是什么?2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型5、系统与网络的关系6、总结 (三)网络传输流程1、网络传输…...

Kotlin 极简小抄 P8(不可空类型、可空类型、注意事项、非空断言 !!)

Kotlin 概述 Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言 Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性 Kotlin 是 Android 应用开发的首选语言,也可…...

几种超声波芯片的特点和对比

一 CX20106A ZIP - 8 CX20106A ZIP - 8 的核心竞争力在于高性价比、易用性和抗光干扰能力,尤其适合消费电子、短距离工业检测和低成本物联网场景。尽管在距离和精度上不及高端芯片,但其成熟的电路方案和广泛的市场应用(如经典红外遥控升级为超…...

软考 系统架构设计师系列知识点之杂项集萃(66)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(65) 第106题 一般说来,SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路产品。以下关于SoC不正确的说法是()。…...

Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]

Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]] 目录 Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]1.find练习2.vim高级使用2.1 命令模式:2.2 插入模式:2.3 末行模式: 3. vimdiff4. ping5.…...

年会招标抽奖活动软件———仙盟创梦IDE

年会是企业一年的总结与欢庆时刻,而抽奖环节更是点燃全场气氛的关键。如何让抽奖环节既大气又充满仪式感?选对抽奖软件至关重要!本文精心挑选了 3 款兼具实用性与氛围感的年会抽奖软件,从界面设计到功能特色,全方位为你…...

智防火灾,慧控能耗:物联网赋能金融行业电气安全革新

摘要 随着金融行业对电气安全需求的不断提升,传统用电管理模式已难以满足现代金融机构对火灾防控、能耗管理和智能运维的要求。本文基于物联网、云计算及大数据分析技术,提出一套针对金融行业的安全用电解决方案。该方案通过智能化硬件部署与平台化管理…...

UML基本概念:构造块、公共机制与规则

本篇来介绍UML的一些基础概念。 1 UML的结构 2 构造块 UML构造块是构成UML模型的基础元素,它们共同构成了UML的核心。 UML 的三种基本构造块是: 事物:对模型中重要元素的抽象,如类、对象等等关系:用来连接事物的&a…...

JAVA项目中常见的注解总结

以下是 Spring Boot/Spring MVC 项目中按使用频率排序的核心注解总结,包含常用场景和示例,帮助你快速掌握高频开发需求: 一、高频基础注解(框架核心) 1. SpringBootApplication(启动类注解) …...

数字电子技术基础(六十二)——使用Multisim软件绘制边沿触发的D触发器和JK触发器

1 使用Mulitism软件模拟时钟触发的D触发器 D触发器是一种基本的数字电路存储元件,它在时钟信号的边沿将输入数据D传递到输出Q。下面开始使用Multisim软件来模拟时钟触发的D触发器。 器件选择: 触发器选择:在组选项栏中点击Misc Digital&am…...

滚珠丝杆的承载力是多少?

滚珠丝杆的承载力不是一个固定值,它受到多种因素的影响,包括直径、螺距、滚珠个数、滚珠直径、材料、润滑条件等。 ‌滚珠丝杆的承载力主要取决于其额定动负荷和静负荷,额定动负荷是指在特定条件下,滚珠丝杆能够承受的动态负载&am…...

CQF预备知识:一、微积分简介 —— 基本术语详解

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 📖 数学入门全解 本教程为复习课程,旨在帮助读者复习数学知识。教程涵盖以下四个主题: 微积分线性代数微…...

【深度估计 Depth Estimation】数据集介绍

文章目录 总览1. KITTI Depth Completion1.1. 来源1.2. 采集场景1.3. 数据集内容1.4. 标注内容1.5. 任务目标1.6. 样本量1.7. 下载链接 2. KITTI Stereo Evaluation 20152.1. 来源2.2. 采集场景2.3. 数据集内容2.4. 标注内容2.5. 任务目标2.6. 样本量2.7. 下载链接 3. Virtual …...

鸿蒙UI开发——Builder与LocalBuilder对比

1、概 述 在ArkUI中,有的朋友应该接触过Builder和LocalBuilder。其中有了LocalBuilder的存在,是为了解决组件的父子关系和状态管理的父子关系保持一致的问题。 这里面最直观的表现则是this的指向问题与组件刷新问题,本文对Builder与LocalBu…...

FFT加窗和抽取滤波

FFT加窗 在信号处理中,为了减少频谱泄漏(Spectral Leakage),在进行快速傅里叶变换(FFT)时通常会采用加窗(Windowing)技术。包括常见的窗函数及其特性对比。 MATLAB FFT 加窗流程 采…...

CentOS 10:启动telnet服务

参考, 鳥哥私房菜 - 第七章、網路安全與主機基本防護:限制埠口, 網路升級與 SELinux 7.3.3 埠口与服务的启动/关闭及开机时状态设定 我们知道系统的 Telnet 服务通常是以 super daemon 来控管的,请您启动您系统的 telnet 试看看。 1 要启动 …...

腾讯位置服务重构出行行业的技术底层逻辑

位置智能:重构出行行业的技术底层逻辑 在智慧城市建设与交通出行需求爆发的双重驱动下,位置服务正从工具层跃升为出行行业的核心基础设施。腾讯位置服务以“连接物理世界与数字空间”为核心理念,通过构建高精度定位、实时数据融合、智能决策…...

webpack5所用依赖以及对应的版本

所有依赖以及版本 {"name": "market-web","version": "0.1.0","private": true,"scripts": {"dev": "cross-env NODE_ENVdevelopment webpack serve --config ./vue.config.js","buil…...

vue-cli 构建打包优化(JeecgBoot-Vue2 配置优化篇)

项目:jeecgboot-Vue2 在项目二次开发后,在本人电脑打包时间为3分35秒左右 webpack5默认优化: Tree Shaking(摇树优化):删除未使用的代码base64 内联: 小于 8KB 的资源(图片等&…...

Webpack 分包策略详解及实现

Webpack 的分包策略(Code Splitting)是优化前端应用性能的重要手段,它能将代码拆分成多个 bundle,实现按需加载或并行加载,从而减少初始加载时间。 分包策略的必要性 在大型项目中,如果将所有代码打包到一…...

大模型微调与高效训练

随着预训练大模型(如BERT、GPT、ViT、LLaMA、CLIP等)的崛起,人工智能进入了一个新的范式:预训练-微调(Pre-train, Fine-tune)。这些大模型在海量数据上学习到了通用的、强大的表示能力和世界知识。然而&…...

postgreSQL日常维护

目录 登录数据库 数据库操作列出列出库 创建库 删除库 切换库 查看库的大小 数据表操作 列出表 创建表 复制表 删除表 查看表的结构 模式操作命令 创建模式 默认模式 删除模式 查看所有模式 在指定模式中创建表 切换当前模式 查看当前所在schema 查看搜索…...

数据直观分析与可视化

数据直观分析与可视化 一、数据的直观分析核心价值 数据的直观分析旨在通过视觉化的方式,帮助人们更直观、更快速地理解数据的特征和模式,从而发现趋势、异常值、分布情况以及变量之间的关系,为决策提供支持。 数据可视化与信息图形、信息可…...

BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds

BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机解决方案技术路线踏脚点奖励双Critic进行稀疏奖励学习两阶段学习地形感知运动马尔可夫决策空间Sim2Real 附录实验结果 BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机…...

Spark大数据分与实践笔记(第五章 HBase分布式数据库-02)

文章目录 每日一句正能量第五章 HBase分布式数据库章节概要5.2 HBase的集群部署 每日一句正能量 人有三样东西是无法隐瞒的,咳嗽,穷困和爱,你想隐瞒越欲盖弥彰。人有三样东西是不该挥霍的,身体,金钱和爱,你…...