大连指令数据集的创建--数据收集与预处理_02
1.去哪儿爬虫
- 编程语言:Python
- 爬虫框架:Selenium(用于浏览器自动化)
- 解析库:BeautifulSoup(用于解析HTML)
2.爬虫策略
- 目标网站:去哪儿(https://travel.qunar.com/travelbook/list.htm?order=hot_heat)
- 目标数据:大连的旅游攻略
- 流程概述:
- 打开去哪儿旅游攻略并进行搜索。
- 提取搜索结果页面中旅游攻略的链接。
- 分别访问每个旅游攻略页面,提取内容并按照json格式保存到本地文件。
3.获取旅游攻略链接
3.1导入库
import re
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from bs4 import BeautifulSoup
3.2配置文件路径和ChromeDriver路径,根据自己的Chrome的chromedriver.exe的路径配置ChromeDriver路径,根据自己存放链接的位置配置文件路径
# 配置文件路径和ChromeDriver路径
file_path = 'D:\\Pycharm\\space\\Qunaer\\去哪儿大连链接.txt'//根据实际位置设置路径
chrome_driver_path = "D:\\chromedriver\\chromedriver.exe"//根据实际位置设置路径
3.3初始化Selenium WebDriver
s = Service(chrome_driver_path)
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(service=s, options=options)
3.4获取去哪儿大连的攻略链接,并存储在txt文档中。
# 打开去哪儿攻略页面
driver.get("https://travel.qunar.com/travelbook/list.htm?order=hot_heat")wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.XPATH, '/html/body/div[3]/div/div[2]/div[1]/div[1]/input[1]')))start_input = driver.find_element(By.XPATH, '/html/body/div[3]/div/div[2]/div[1]/div[1]/input[1]')
start_input.send_keys('大连')
time.sleep(1)
start_input = driver.find_element(By.CLASS_NAME, 'sub_btn')
start_input.click()
time.sleep(3)
soup = BeautifulSoup(driver.page_source, 'html.parser')
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'b_paging')))
paging_div = soup.find('div', class_='b_paging')
max_page = 0
if paging_div.text or paging_div.find_elements(By.TAG_NAME, 'a'):soup = BeautifulSoup(driver.page_source, 'html.parser')max_page = 0for a_tag in paging_div.find_all('a'):if 'data-beacon' in a_tag.attrs and a_tag['data-beacon'] == 'click_result_page':href = a_tag['href']page_number = int(href.split('/')[-1].split('.')[0])max_page = max(max_page, page_number)print(f"Maximum page number: {max_page} {href}")pattern = re.compile(r'(\d+)\.htm$')href = pattern.sub('', href)for i in range(max_page):link = "https:" + href + str(i+1) + ".htm"time.sleep(1)driver.get(link)soup = BeautifulSoup(driver.page_source, 'html.parser')wait = WebDriverWait(driver, 10)wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'list_item')))list_items = soup.find_all('li', {'class': 'list_item'})for item in list_items:data_url = item.get('data-url')if data_url:with open(file_path, 'a', encoding='utf-8') as file:file.write(data_url + '\n')else:print(f"No data-url found for this <li> element.")else:print("No <ul> element with class b_strategy_list found.")
else:print("The b_paging div is empty or doesn't contain any anchor tags.")
3.5运行结果:
4.获取并处理旅游攻略内容
4.1导入库
import json
import time
from datetime import datetime
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common import TimeoutException
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
4.2一个字典和三个函数的定义
先上代码,再分析定义函数的功能和作用。
chinese_months = {1: '一月',2: '二月',3: '三月',4: '四月',5: '五月',6: '六月',7: '七月',8: '八月',9: '九月',10: '十月',11: '十一月',12: '十二月'
}def remove_after_comment(text):index = text.find("【备注】")if index != -1:return text[:index]else:return textdef get_season(month):if 3 <= month <= 5:return '春天'elif 6 <= month <= 8:return '夏天'elif 9 <= month <= 11:return '秋天'else:return '冬天'def change(text):if '/' in text:try:date_obj = datetime.strptime(text, '%Y/%m/%d')month_name = chinese_months[date_obj.month]season = get_season(date_obj.month)result_list.append(f'{month_name}')result_list.append(f'{season}')except ValueError:passelif text.isdigit():if int(text) < 99:result_list.append(f'{text}天')else:result_list.append(f'{text}元')else:if text not in result_list:result_list.append(text)
以下是对这四个函数的详细解释和分析
1. `chinese_months` 字典
功能:将公历月份(数字1-12)映射为中文月份名称。
作用:提供标准化的月份翻译,符合中文习惯。
2. `remove_after_comment` 函数
功能:删除文本中“【备注】”及其后的内容。
作用:清理数据中的注释信息,保留主文本。
3. `get_season` 函数
功能:根据月份返回对应季节。
作用:将月份映射为中文季节名称,符合中国常见的气象季节划分(3-5月为春,6-8月为夏等)。但需注意,中国幅员辽阔,实际季节可能因地而异,此处为通用逻辑。
4. `change` 函数
功能:多条件文本转换器,处理日期、数字和其他文本。
作用:
(1)日期处理:识别形如 `YYYY/MM/DD` 的日期,提取中文月份和季节(依赖 `chinese_months` 和 `get_season`)。例如,输入 `"2025/02/25"` → 输出 `["二月", "冬天"]`。
(2)数字处理:
- 小于99的数字添加“天”(如 `30` → `"30天"`,表示天数)。
- 大于等于99的数字添加“元”(如 `100` → `"100元"`,表示金额)。
(3)其他文本:直接保留唯一值(去重)。
4.3配置文件路径和ChromeDriver路径,根据自己的Chrome的chromedriver.exe的路径配置ChromeDriver路径,根据自己存放链接的位置配置文件路径。
# 配置文件路径和ChromeDriver路径
file_path = 'D:\\Pycharm\\space\\Qunaer\\去哪儿大连链接.txt' # 保存内容的文件路径
chrome_driver_path = "D:\\chromedriver\\chromedriver.exe" # ChromeDriver路径
4.4初始化Selenium WebDriver
s = Service(chrome_driver_path)
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(service=s, options=options)
4.5打开3.5中生成的“去哪儿大连链接.txt”文件,获取链接,进一步处理,爬取大连旅游攻略内容。
with open(file_path, 'r') as file:for line in file:result_list = []line = line.strip()last_part = line.rsplit('/', 1)[-1]print(last_part)time.sleep(1)driver.get("https://travel.qunar.com/travelbook/note/" + last_part)driver.maximize_window()try:wait = WebDriverWait(driver, 10)wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'foreword_list')))except TimeoutException:continuesoup = BeautifulSoup(driver.page_source, 'html.parser')ul = soup.find('ul', {'class': 'foreword_list'})print(ul)soup1 = BeautifulSoup(str(ul), 'html.parser')data_elements = soup1.find_all('span', {'class': 'data'})for data_element in data_elements:for text in data_element.stripped_strings:change(text)inputxt = ''for r in result_list:inputxt += '#'inputxt += str(r)text_element = soup.find('div', class_='e_main')text_content = text_element.get_text(strip=True, separator='\n')data = {'instruction': inputxt,'summary': '','output': remove_after_comment(text_content)}with open('D:\\Pycharm\\space\\Qunaer\\去哪儿大连.json', 'a', encoding='utf-8') as file:json.dump(data, file, ensure_ascii=False, indent=4)file.write('\n')time.sleep(3)driver.quit()
4.6运行结果
4.7工程文件夹,有两个python文件,一个是3中的获取旅游攻略链接,一个是4中的获取并处理旅游攻略内容
相关文章:
大连指令数据集的创建--数据收集与预处理_02
1.去哪儿爬虫 编程语言:Python爬虫框架:Selenium(用于浏览器自动化)解析库:BeautifulSoup(用于解析HTML) 2.爬虫策略 目标网站:去哪儿(https://travel.qunar.com/trav…...
SOME/IP-SD -- 协议英文原文讲解5
前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.2.5 S…...
C#异步编程之async与await
一:需求起因 在 C# 中使用异步编程(特别是使用 async 和 await 关键字)通常是为了提高应用程序的响应性和性能,特别是在需要进行 I/O 操作或执行长时间运行的任务时。 常见应用场景如下: 1. 网络请求 HTTP 请求&…...
Spring Security 登录流程中的自定义解密实现
文章目录 前言1. Spring Security 核心组件介绍2. 前端密码多加密场景的处理3. 重写 DaoAuthenticationProvider4. 让 Spring Security 使用自定义 Provider5. 验证流程总结6. 完整性与调试 总结 前言 在现代 Web 安全体系中,Spring Security 是最常用的安全框架之一…...
考研出分24小时,人类精神状态图鉴
2月24日,上午10点起,各省考研初试成绩陆续公布,考生们或紧张的输入准考证号,或抱团等待“审判”。然而更魔幻的还在后头——下午4点,教育部竟在同一天直接发布了《2025年研考国家分数线》。 不少网友表示:…...
顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-大模型电话机器人
语音流直接对接Realtime API 多模态大模型 直接把音频流输出给大模型,大模型返回音频流。 顶顶通CTI对Realtime API 的支持 提供了以下2个APP可对接任意 •cti_audio_stream 通过TCP推流和播放流,适合用于人机对话场景。 •cti_unicast_start 通过旁…...
《Kafka 理解: Broker、Topic 和 Partition》
Kafka 核心架构解析:从概念到实践 Kafka 是一个分布式流处理平台,广泛应用于日志收集、实时数据分析和事件驱动架构。本文将从 Kafka 的核心组件、工作原理、实际应用场景等方面进行详细解析,帮助读者深入理解 Kafka 的架构设计及其在大数据领域的重要性。 1. Kafka 的背…...
【前端】XML,XPATH,与HTML的关系
XML与HTML关系 XML(可扩展标记语言)和 HTML(超文本标记语言)是两种常见的标记语言,但它们有不同的目的和用途。它们都使用类似的标记结构(标签),但在设计上存在一些关键的差异。 XML…...
(九)趣学设计模式 之 桥接模式!
目录 一、 啥是桥接模式?二、 为什么要用桥接模式?三、 桥接模式的实现方式四、 桥接模式的优缺点五、 桥接模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…...
Web Worker 使用教程
一、概述 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带…...
算法仿真平台搭建1-FFMPEG+RtspSever快速搭建一个RTSP服务器
一、前言 本文相关的全部源码和RtspSever库,我已打包上传,欢迎大家免费下载,testRTSPSever。 每一个嵌入式视觉算法工程师,都应该有一套属于自己的算法仿真和测试环境。可以方便地进行视频、图像等素材进行在线导入,可…...
网络安全审计员
在当今数字化时代,随着信息技术的迅猛发展,网络安全问题日益凸显,成为各行各业不容忽视的重要议题。特别是对于企业、政府机构等组织而言,网络安全不仅关乎数据资产的安全,更与组织的声誉、客户信任乃至法律法规的遵从…...
SQL Server查询计划操作符(7.3)——查询计划相关操作符(7)
7.3. 查询计划相关操作符 58)Nested Loops:该操作符执行Inner Join,Left Outer Join,Left Semi Join,以及Left Anti Semi Join等逻辑操作。该操作符用其外(上面)输入中的每行数据对其内(下面)输入进行一个搜索,典型场景为其使用一个索引。查询处理器基于预期的成本决…...
数据库测试
TPCH 22条SQL语句分析 - xibuhaohao - 博客园 TPCH模型规范、测试说明及22条语句 - zhjh256 - 博客园 TPC-DS 性能比较:TiDB 与 Impala-PingCAP | 平凯星辰 揭秘Oracle TPC-H性能优化:如何提升数据库查询速度,揭秘实战技巧与挑战 引言 T…...
数据结构——排序4
上次我们讲解了快速排序的递归的几种做法。 那么,作为一名合格的程序员,改递归为非递归是必要的,现在我们来学习一下非递归的做法: 快速排序非递归: 首先,我们先了解一下,为什么要改为非递归…...
Pycharm中怎么加快下载三方包速度
Pycharm中怎么加快下载三方包速度 使用命令行下载,-i pip install transformers -i https://mirrors.aliyun.com/pypi/simple/ 在Windows系统的PyCharm中使用Python 3.12环境时,可通过以下几种方式配置不同镜像源来加快下载包的速度。 方式一:在PyCharm界面中直接配置镜…...
Spring MVC框架二:创建第一个MVC程序
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 有两种方式 利用配置 1、利用IDEA新建一个Maven项目,添加一个web支持 2、导入常用的依赖 <dependencies><dependency><groupId…...
Netty为什么性能很高?
大家好,我是锋哥。今天分享关于【Netty为什么性能很高?】面试题。希望对大家有帮助; Netty为什么性能很高? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Netty是一款高性能的网络通信框架,主要用于构建高性能的网络应用程序。…...
目标检测tricks
A. Stochastic Weight Averaging (SWA) 1. 基本思想 SWA 的核心思想是通过对训练过程中不同时间点的模型参数进行加权平均,从而获得一个更好的模型。具体来说,SWA 在训练过程的后期阶段对多个不同的模型快照(snapshots)进行平均…...
ai-2、机器学习之线性回归
机器学习之线性回归 1、机器学习2、线性回归2.1、梯度下降法 3、python下调用scikit-learn 1、机器学习 2、线性回归 ####所以y可以当成我们需要的结果,根据公式可以求的y一撇的值更小,所以更接近需要的结果,所以y一撇拟合性更好 2.1、梯度下…...
版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点
版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点 引言正文定义坐标点的类绘图显示代码直接连接两个坐标点引言 由于人工智能的加速普及,每次手动绘制版图都会觉得特别繁琐,作者本人在想可否搞一个自动化连接器件端口的算法,后期可以根据一些设定的限制进行避…...
删除变慢问题
问题: 有一个场景,每天都会删除数据,SQL为delete from xxx where record_date < DATE_SUB(now(), INTERVAL ? DAY) limit 1000 ,一直循环执行,当执行到最后一次满足条件的时候,就会很慢 原理分析 索引与…...
第十四届蓝桥杯Scratch11月stema选拔赛真题——小猫照镜子
编程实现: 小猫照镜子。(背景非源素材) 具体要求: 1). 运行程序,角色、背景如图所示; 完整题目可点击下方链接查看,支持在线编程~ 小猫照镜子_scratch_少儿编程题库学习中心-嗨信奥https://www.hixinao.com/tiku/s…...
Python标准库【os.path】操作路径
文章目录 1 该模块的源文件2 提取路径信息3 获取文件信息4 判定路径状态5 变换路径6 路径拆分 os.path模块实现了一些操作路径相关的函数。它们都接收字符串、字节串格式的路径或类路径对象(实现os.PathLike协议)为参数。 接收字符串时,函数返回的结果也是字符串&am…...
vue3 keep-alive 页面切换不触发onActivated和onDeactivated方法周期
<script setup lang"ts"> import { onActivated, onDeactivated, shallowRef } from vue import CompA from ../components/CompA.vue import CompB from ../components/CompB.vue const current shallowRef(CompA) onActivated(() > {console.log(组件被激…...
Qt 中集成mqtt协议
一,引入qmqtt 库 我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台时 方便,直接编译就行了。 原始仓库路径:https://github.com/emqx/qmqtt/tree/master 二,使用 声明一个单例类,将订阅到…...
JAVA面试_进阶部分_23种设计模式总结
1. 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这 个实例。 (1)懒汉式 public class Singleton { /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载…...
初阶数据结构(C语言实现)——3顺序表和链表(3)
3.链表 3.1 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 链表的物理结构 1.从上图可看出,链式结构在逻辑上是连续的,但是在物理上不一定连续…...
Vue打包(webpack)缓存
解决方法: 1、修改vue.config.js文件 const Timestamp new Date().getTime();module.exports defineConfig({configureWebpack{output: {filename: [name].${Timestamp}.js,chunkFilename: [name].${Timestamp}.js},},css: {extract: { // 打包后css文件名称添加…...
磁盘阵列新秀GSx并行文件存储是HPC高性能计算/AI 大模型-1替3好省预算
Infortrend 普安存储GSx 并行文件存储系统凭一体化设计,颠覆了传统存储系统的复杂配置模式。内置并行文件系统,支持私有协议或 CIFS 协议,实现客户端/服务器与存储设备的直接连接,无需额外配置I/O节点、元数据服务器及并行系统软件࿰…...
数据基础4: 线性代数基础行列式(矩阵)
二阶 三阶 矩阵和数据之间的关系。 行列式 n,n ;矩阵m行,n列 逆序数 在行列式的计算中,逆序数用于决定每一项前面的符号。 如果一个排列的逆序数是偶数,则该项前面的符号为正; 如果是奇数,则符号为负。 …...
【Project】基于Prometheus监控docker平台
一、设计背景 1.1项目简介 本项目旨在创建一个全面的容器化应用程序监控解决方案,基于Prometheus监控Docker平台上的各种服务。在当今的软件开发环境中,容器化技术已成为一种关键的工具,使应用程序能够更快速、可靠地交付和扩展。然而&…...
AcWing 蓝桥杯集训·每日一题2025·密接牛追踪2
密接牛追踪2 农夫约翰有 N 头奶牛排成一排,从左到右依次编号为 1∼N。 不幸的是,有一种传染病正在蔓延。 最开始时,只有一部分奶牛受到感染。 每经过一个晚上,受感染的牛就会将病毒传染给它左右两侧的牛(如果有的话…...
面试(进阶) —虚拟列表在什么场景使用,如何实现?
面试(进阶) —虚拟列表在什么场景使用,如何实现? 在前端开发中,当需要渲染大量数据时,传统的渲染方式往往会遇到性能瓶颈。一次性将大量数据渲染到DOM中,不仅会导致页面加载缓慢,还可能占用大量内存&#x…...
Linux基础 -- ARM 32位常用机器码(指令)整理
ARM 32位常用机器码(指令)整理 1. 数据处理指令(运算、逻辑、比较) 指令含义示例备注MOV赋值(寄存器传输)MOV R0, R1直接将 R1 复制到 R0MVN取反MVN R0, R1R0 ~R1ADD加法ADD R0, R1, R2R0 R1 R2ADC带进…...
【JAVA】阿里云百炼平台对接DeepSeek-V3大模型使用详解
1、DeepSeek简介 DeepSeek的火热让全世界见证了一场国产AI大模型走向巅峰的盛宴。DeepSeek的横空出世一方面让AI大模型的格局得到重塑,另一方面,对于普通人来说,也有机会零距离的体验到更懂国人的AI大模型。从很多使用过后的小伙伴们的反馈来…...
STM32之时钟树
左边是时钟产生电路,右边是时钟分配电路。中间的SYSCLK就是系统时钟72MHz,在产生电路有四个时钟源,分别是内部8MHz高速RC振荡器,外部的4-16MHz高速石英晶体振荡器,这个一般接8MHz,第三个是外部的32.768kHz低速晶振&…...
QT day1
作业 代码 class Widget: public QWidget {QPushButton* button; //按钮Widget* other; //显示对面 public:Widget(){button new QPushButton("按钮",this); //控件 认this作父this->resize(300,300); //界面大小button->resize(100,10…...
【机器学习】梯度下降法及使用一元二次方程模拟使用梯度下降法的代码实现
梯度下降法 一、摘要二、梯度下降法三、线性方程中使用梯度下降法 一、摘要 文本主要讲述了梯度下降法作为机器学习中的一种优化方法,用于最小化损失函数。它并非直接解决机器学习问题,而是作为求解最优参数的工具。通过二维坐标图直观展示了梯度下降法…...
Hive配置
目录 1. 引言2. 通过docker-compose联动启动Hadoop和MySQL容器3. 配置Hive3.1 下载并解压Hive-4.0.12.2 配置环境变量2.3 安装mysql-connector的jar包2.4 配置Hive2.4.1 hive-env.sh2.4.2 hive-site.xml2.4.2.1 javax.jdo.option.ConnectionURL2.4.2.2 javax.jdo.option.Connec…...
网络安全 越权分为几种
1. 权限查看 Linux 系统中的每个文件和目录都有访问许可权限,通过其确定谁可以通过何种方式对文件和目录进行访问和操作。 文件或目录的访问权限分为只读、只写和可执行3种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改…...
PHP面试题--后端部分
本文章持续更新内容 之前没来得及整理时间问题导致每次都得找和重新背 这次整理下也方便各位小伙伴一起更轻松的一起踏入编程之路 欢迎各位关注博主不定期更新各种高质量内容适合小白及其初级水平同学一起学习 一起成为大佬 数组函数有那些 ps:本题挑难的背因为…...
HTTP~文件 MIME 类型
MIME(Multipurpose Internet Mail Extensions)类型,即多用途互联网邮件扩展类型,是一种标准,用来表示文档、文件或字节流的性质和格式。最初是为了在电子邮件系统中支持非 ASCII 字符文本、二进制文件附件等而设计的&a…...
工程化与框架系列(4)--Webpack 高级配置详解
Webpack 高级配置详解 🛠️ Webpack 是前端工程化中最流行的构建工具之一,掌握其高级配置可以帮助我们构建更高效、更优化的应用。本文将深入探讨Webpack的高级配置技巧和最佳实践。 Webpack 核心概念回顾 🌟 💡 小知识…...
Let‘s Encrypt免费证书的应用示例
文章目录 前言证书申请证书介绍cert.pemchain.pemfullchain.pemprivkey.pem 使用步骤搭建简易demo应用新建nginx配置文件测试SSL是否生效 总结 前言 最近在搞苹果应用上架的问题,据说用HTTP会被拒,但貌似不绝对,2017年苹果曾发公告说必须要求…...
线性模型 - 支持向量机
支持向量机(SVM)是一种用于分类(和回归)的监督学习算法,其主要目标是找到一个最佳决策超平面,将数据点分为不同的类别,并且使得分类边界与最近的数据点之间的间隔(margin)…...
455. 分发饼干(LeetCode)
题目来源: 455. 分发饼干 - 力扣(LeetCode) 题目内容: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i]…...
Harmony os next~鸿蒙应用开发入门教程
鸿蒙应用开发入门教程 基础准备与环境搭建 1. 了解鸿蒙系统 1.1 核心理念学习 HarmonyOS(鸿蒙系统)是华为推出的全场景分布式操作系统,其核心特点如下: 分布式能力 设备协同:手机、平板、智能手表、IoT设备等可无…...
数据库数据恢复—SQL Server附加数据库报错“错误 823”怎么办?
SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份不可用,那么就需要通过专业手段对数据库进行数据恢复…...
树莓派安装ros docker
系统:bookworm或者ubuntu24都行 一、下载docker和拉取ros:noetic镜像 ubuntu 用鱼香ros脚本安装docker并拉取ros:noetic镜像: https://fishros.org.cn/forum/topic/20/小鱼的一键安装系列 wget http://fishros.com/install -O fishros && . …...