「爬虫实战分享:如何高效爬取某汽车官方销售排行榜」
本文目录
- 💖前言
- 一、💫代理IP的作用
- 二、💫爬虫中的挑战
- 1.代理IP的质量和稳定性
- 2.IP封禁问题
- 3. 反爬虫技术的升级
- 三、💫亮数据动态代理:数据采集的可靠伙伴
- 1、真实体验
- 四、💫爬虫实战:使用亮数据代理ip爬取某汽车官方销售排行榜
- 1.选择服务
- 2.注册账号
- 3.使用动态住宅ip
- 4.验证代理ip是否可用
- 5.代码实战
- 6.扩展
- 💫总结
- 投票🚗(传送门)
💖前言
在互联网数据爬取过程中,代理IP已成为爬虫技术中不可或缺的工具。代理IP通过替代爬虫的真实IP地址,使得爬虫能够绕过网站的访问限制,如IP封禁、访问频率限制等。随着反爬虫技术日益复杂,代理IP为爬虫提供了更高的灵活性、隐私保护和稳定性。因此,合理使用代理IP,成为开发高效爬虫程序的关键。
一、💫代理IP的作用
代理IP的核心作用在于伪装请求来源,避免被目标网站检测到爬虫行为。通常,网站会通过检测单一IP的请求频率来判断是否为爬虫。当某个IP发送大量请求时,网站可能会封禁该IP,以防止爬虫程序继续抓取数据。使用代理IP可以将多个IP地址与请求分配进行关联,避免单一IP暴露在高频率请求下,从而降低封禁风险。
二、💫爬虫中的挑战
尽管代理IP能有效解决封禁问题,但在实际应用中,使用代理IP时也会遇到不少挑战:
1.代理IP的质量和稳定性
代理IP的质量直接影响爬虫的效率。一些免费代理或低质量代理IP可能存在连接不稳定、响应速度慢或易被封禁等问题。为了保证爬虫的持续性和稳定性,开发者需要选择高质量的付费代理服务。
2.IP封禁问题
高级的反爬虫机制能够识别和封锁大量使用代理IP的爬虫请求,尤其是当多个请求来自同一个代理池时。为了避免封禁,开发者需要确保代理IP池的多样性,并定期更换IP地址。
3. 反爬虫技术的升级
随着反爬虫技术的不断进步,越来越多的网站使用更加复杂的技术,如验证码、人机验证、JavaScript挑战等,来识别和阻止爬虫。即使使用代理IP,爬虫仍可能遭遇难以逾越的技术障碍
三、💫亮数据动态代理:数据采集的可靠伙伴
在本人日常工作中,工作内容与爬虫技术紧密相关。在长期的实践中,我尝试使用过众多不同来源的代理IP服务。经过实际体验和对比,其中有一款代理IP产品表现出色,堪称行业翘楚 Bright Data。它不仅能够全方位满足我在爬虫工作中的各种复杂需求,而且在性能、稳定性以及安全性等关键方面都展现出卓越的品质。正因如此,我愿意为其优质的服务支付相应的费用。
1、真实体验
-
全球覆盖与IP池规模
从个人使用角度来看,我对网络内容的访问需求是多样化且广泛的。例如在进行市场调研时需要获取不同国家和地区的行业信息时,使用Bright Data,它提供的超1亿个ip以及涵盖超过200个国家地区,让我能够很轻松的突破地域限制,获取最真实、最贴近实际的信息,这为我的工作带来了极大的便利。 -
高匿名性与安全性
在网络活动中,匿名性和安全性是我最为关注的因素之一。Bright Data提供的是真实用户的住宅代理IP地址,这一点让我非常放心。在使用其他一些平台时,我曾担心由于IP来源的问题而被目标网站轻易识破,导致被封禁,从而影响工作的进展。但Bright Data的真实住宅代理能够很好地模拟真实用户的行为,使我在进行网络访问时,很难被网站识别为爬虫流量,大大降低了被封禁的风险。 -
高速度与低延迟
工作效率对于我来说也是至关重要,尤其是在处理大量数据抓取和分析的任务时。Bright Data提供了高速稳定的连接,这让我能够快速地完成工作。在实际使用中,我明显感觉到网页加载和数据抓取的速度非常快,减少了延迟和超时的情况。 -
灵活的计费与付款方式
费用也是我选择网络代理平台时考虑的重要因素之一。与其他平台相比,Bright Data在计费方式上的灵活性实在是无与伦比。与其他那些固守固定计费模式的平台相比,Bright Data真正做到了为用户着想。它提供了按流量、按IP数量、按时间等多种计费方式,让我可以根据自己的实际需求来灵活调整。无论是短期的爆发式业务需求,还是长期的稳定使用,Bright Data都能提供恰到好处的计费方案,确保我只为自己真正使用的资源付费。这种灵活性让我能够更好地控制成本,同时也让我感受到了Bright Data对我需求的真实理解和支持。而且,Bright Data经常推出一些优惠活动,如注册即赠2美金试用金->立即试用<-,并且购买的动态IP享受5折优惠等。这些优惠活动为我节省了不少成本,提高了产品的性价比。
四、💫爬虫实战:使用亮数据代理ip爬取某汽车官方销售排行榜
目标网站:https://www.autohome.com.cn/
1.选择服务
这里我使用的是亮数据家的动态住宅代理,动态住宅代理是一种由互联网服务提供商(ISP)分配给用户的可自动更改IP地址的网络代理服务。它具高匿名性,因IP动态变化且来自真实住宅网络,能保护隐私;真实性强,可模拟真实用户环境;适用广泛,能满足不同业务场景需求。其工作原理是用户请求时,代理服务器从大量住宅IP池中分配可用IP并加密转发数据。
2.注册账号
首先打开->Bright Data官网<-,点击免费试用,输入邮箱(用来收取验证码)、微信、手机号
,进行注册。
注册成功后,来到支付页面,会发现已经赠送2$的使用额度,有效期为3天,如下图:
3.使用动态住宅ip
点击左侧菜单中Proxies & Scraping,选择住宅代理,点击开始使用,如下图
进行一些简单的设置,通道名称、代理类型、以及指定国家的ip
添加成功后,参考代码语言选择Python,然后找到你的代理IP链接:如下图:
4.验证代理ip是否可用
import requests
import urllib3urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def get_html_json(url):"""发送请求,获取响应"""# 请求头模拟浏览器headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.14 Safari/537.36'}proxies = {'http': '替换成你刚刚复制的链接','https': '替换成你刚刚复制的链接'}# 添加请求头和代理IP发送请求response = requests.get(url, headers=headers, proxies=proxies, verify=False)# 获取网页源码if response.status_code == 200:# 解析JSON数据html_str = response.json()return html_strelse:print('Failed to retrieve data', response.status_code)print(get_html_json('https://httpbin.org/ip'))
连续执行两次后,发现输出的当前ip都是不一样的,代表可用,并且每次执行,使用的都是不同ip。
5.代码实战
构建新能源汽车销售榜url
定义了如下方法,其中部分参数是固定的,pagesize参数用来确定爬取的条数,date是确定爬取哪一个月的榜单。
def build_url(date,pagesize):"""构建完整的URL"""base_url = "https://cars.app.autohome.com.cn/carext/recrank/all/getrecranklistpageresult2"params = {'from': 28,'pm': 2,'pluginversion': '11.65.0','model': 1,'channel': 0,'pageindex': 1,'pagesize': pagesize,'typeid': 1,'subranktypeid': 1,'levelid': 201908,'price': '0-9000','date': date}return requests.Request('GET', base_url, params=params).prepare().url
当我们通过url发起请求并获取响应后,获取的是json数据,我们需要提取出有用的数据。
"""提取需要的数据"""
def get_rec_rank(data):# 提取 list 数据list_data = data['result']['list']data_list = []for item in list_data:if isinstance(item, dict) and 'brandid' in item:# print(item)keys_to_extract = ['brandid', 'priceinfo', 'rank', 'seriesname', 'salecount', 'scorevalue', 'seriesid','seriesimage']# 使用字典推导式提取特定keyextracted_data = {key: item[key] for key in keys_to_extract if key in item}print(extracted_data)data_list.append(extracted_data)return data_list
执行后,如下图,相关的数据都被提取出来了。
写入到excel,方便查看,定义如下方法:
def dict_list_to_excel(data_list, excel_file):# 将字典转换为DataFramedf = pd.DataFrame(data_list)# 将DataFrame写入到Excel文件df.to_excel(excel_file, index=False)
完整代码
import requests
import urllib3
import pandas as pdurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def get_html_json(url):"""发送请求,获取响应"""# 请求头模拟浏览器headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6778.14 Safari/537.36'}proxies = {'http': '替换成你刚刚复制的链接','https': '替换成你刚刚复制的链接'}# 添加请求头和代理IP发送请求response = requests.get(url, headers=headers, proxies=proxies, verify=False)# 获取网页源码if response.status_code == 200:# 解析JSON数据html_str = response.json()return html_strelse:print('Failed to retrieve data', response.status_code)"""构建新能源汽车销售榜的url"""
def build_url(date,pagesize):"""构建完整的URL"""base_url = "https://cars.app.autohome.com.cn/carext/recrank/all/getrecranklistpageresult2"params = {'from': 28,'pm': 2,'pluginversion': '11.65.0','model': 1,'channel': 0,'pageindex': 1,'pagesize': pagesize,'typeid': 1,'subranktypeid': 1,'levelid': 201908,'price': '0-9000','date': date}return requests.Request('GET', base_url, params=params).prepare().url"""提取需要的数据"""
def get_rec_rank(data):# 提取 list 数据list_data = data['result']['list']data_list = []for item in list_data:if isinstance(item, dict) and 'brandid' in item:# print(item)keys_to_extract = ['brandid', 'priceinfo', 'rank', 'seriesname', 'salecount', 'scorevalue', 'seriesid','seriesimage']# 使用字典推导式提取特定keyextracted_data = {key: item[key] for key in keys_to_extract if key in item}print(extracted_data)data_list.append(extracted_data)return data_list"""写入到excel"""
def dict_list_to_excel(data_list, excel_file):# 将字典转换为DataFramedf = pd.DataFrame(data_list)# 将DataFrame写入到Excel文件df.to_excel(excel_file, index=False)if __name__ == '__main__':# 设置需要爬取的月份date = '2025-01'# 设置爬取的条数pagesize = 100# 构建url,并发起请求data = get_html_json(build_url(date, pagesize))# 提取需要的数据数据data_list = get_rec_rank(data)print(data_list)# 写入exceldict_list_to_excel(data_list,'NewEnergySalesLeaderboard.xlsx')# 也可以通过seriesid进入到每个汽车的详情页面,获取每个汽车的更多详细信息
免责声明:本文爬虫内容仅供学习参考,对于阅读后进行爬虫行为的用户,不承担任何法律责任。
6.扩展
点击榜单上的某一台车,进入到该车的详情页面发现每一台车的url的构成只有一处不一样,跟我们上面爬取到的seriesid
是一致的,所以我们可以根据seriesid
依次爬取某一台车的详情页面的数据,比如配置信息、车型等,感兴趣的伙伴快去尝试下吧!
💫总结
代理IP对爬虫来说是不可或缺的,但在使用时必须遵守相关法律法规和目标网站的规定,严禁从事非法活动或滥用代理IP服务。亮数据家的动态住宅代理IP可以帮助爬虫安全采集公开数据信息,现在更是推出注册即送2美元的使用额度,以及限时5 折优惠,新老客户同享,有需要代理IP的小伙伴可以体验一下:Bright Data官网
投票🚗(传送门)
相关文章:
「爬虫实战分享:如何高效爬取某汽车官方销售排行榜」
本文目录 💖前言一、💫代理IP的作用二、💫爬虫中的挑战1.代理IP的质量和稳定性2.IP封禁问题3. 反爬虫技术的升级 三、💫亮数据动态代理:数据采集的可靠伙伴1、真实体验 四、💫爬虫实战:使用亮数…...
AI数据分析:用DeepSeek做数据清洗
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展,AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行数据清洗。 数据清洗是数据分析的基础,其目的是…...
使用串口工具实现tcp与udp收发
1、使用串口工具实现tcp收发 2、使用串口工具实现udp收发...
onlyoffice 服务搭建及配置 - 前端 office 文件预览解决方案
文章目录 1. 安装1.1 环境要求1.2 安装步骤1.3 常用配置1.3.1 安装目录/config/default.json1.3.2 安装目录/config/local.json1.3.3 安装目录/nginx/conf1.3.4 配置生效 2. 网站嵌入2.1 代码示例2.2 最终效果 3. 常见问题3.1 数据库配置错误导致加载不出来 1. 安装 写文章时使…...
PostgreSQL的基本使用
参考视频:零基础入门PostgreSQL教程 文章目录 一、PostgreSQL是什么?二、基本使用1.下载2.操作 一、PostgreSQL是什么? PostgreSQL 是一个免费的对象-关系数据库服务器,在灵活的BSD许可证下发行。 二、基本使用 1.下载 2.操作 …...
【AI深度学习基础】NumPy完全指南入门篇:核心功能与工程实践(含完整代码)
NumPy系列文章 入门篇进阶篇终极篇 一、NumPy简介 NumPy(Numerical Python)是Python中科学计算的核心库,提供了高性能的多维数组对象和各种用于数组操作的函数。它是Python数据分析和科学计算的基础,被广泛应用于机器学习、数据…...
武汉大学生命科学学院与谱度众合(武汉)生命科技有限公司举行校企联培座谈会
2025年2月21日下午,武汉大学生命科学学院与谱度众合(武汉)生命科技有限公司(以下简称“谱度众合”)在学院学术厅举行校企联培专业学位研究生合作交流会。武汉大学生命科学学院副院长刘星教授、生命科学学院周宇教授、产…...
小程序画带圆角的圆形进度条
老的API <canvas id"{{canvasId}}" canvas-id"{{canvasId}}" style"opacity: 0;" class"canvas"/> startDraw() {const { canvasId } this.dataconst query this.createSelectorQuery()query.select(#${canvasId}).bounding…...
MR-图解
1、不是所有的MR都适合combine 1.1、map端统计出了不同班级的每个学生的年龄 如:(class1, 14)表示class1班的一个学生的年龄是14岁。 第一个map任务: class1 14 class1 15 class1 16 class2 10第二个map任务: class1 16 class2 10 class…...
[深度学习] 大模型学习2-提示词工程指北
在文章大语言模型基础知识里,提示词工程(Prompt Engineering)作为大语言模型(Large Language Model,LLM)应用构建的一种方式被简要提及,本文将着重对该技术进行介绍。 提示词工程就是在和LLM聊…...
VSCode离线安装插件
最近在其他电脑设备上部署vscode环境出现问题,在vscode里直接安装插件失败,软件提示如下:(此前已经用此方法安装过中文插件) 这里我们选择手动下载,会自动在浏览器中跳转到该插件的下载链接并自动下载插件&…...
python-leetcode-删除并获得点数
740. 删除并获得点数 - 力扣(LeetCode) 解法 1:动态规划(O(n) 时间,O(n) 空间) class Solution:def deleteAndEarn(self, nums: List[int]) -> int:if not nums:return 0# 统计每个数的贡献points Cou…...
Spring Boot 流式响应豆包大模型对话能力
当Spring Boot遇见豆包大模型:一场流式响应的"魔法吟唱"仪式 一、前言:关于流式响应的奇妙比喻 想象一下你正在火锅店点单,如果服务员必须等所有菜品都备齐才一次性端上来,你可能会饿得把菜单都啃了。而流式响应就像贴…...
STM32G431RBT6——(1)芯片命名规则
相信很多新手入门STM学的芯片,是STM32F103C8T6,假如刷到个项目换个芯片类型,就会感到好难啊,看不懂,就无从下手,不知所云。其实没什么难的,对于一个个不同的芯片的区别,就像是学习包…...
React进阶之前端业务Hooks库(三)
前端业务Hooks库 hooks 方法localStorage和sessionStorager区别packages/hooks/src/useLocalStorageStatepackages/hooks/src/useSessionStorageStatepackages/hooks/src/createUseStorageState模块Hooks在不同场景下的应用Hooks陷阱前提例子useLatest和useMemoizedFn其他功能的…...
卷积神经网络梯度下降方向与参数更新方向的一致性论述
梯度下降是一种常用的优化算法,用于最小化损失函数,在机器学习和深度学习领域有着广泛的应用。分别对梯度下降、梯度方向以及参数更新采用负梯度方向的原因进行论述。 1.梯度下降 它的基本思想是通过迭代的方式来更新模型的参数,使得损失函数…...
python 视频网站爬虫教程,爬虫入门教程(付安装包)
文章目录 前言1. 环境准备Python安装选择Python开发环境安装必要库 2. 了解目标网站3. 发送请求获取页面内容4. 解析页面内容,提取视频链接5. 下载视频6. 处理反爬机制7. 完整代码示例注意事项 前言 以下为你生成一份 Python 视频网站爬虫教程,以爬取简…...
Is Noise Conditioning Necessary for Denoising Generative Models?论文阅读笔记
很吸引人的一个标题,很吸引人的一个作者,来读一读明神的新作,讲的是怎么把去噪领域的一些有意思的思想,特别是blind denoising和noise-level estimation的思想,应用到denoising diffusion模型中,从而去掉de…...
BIO、NIO、AIO、Netty从简单理解到使用
Java编程中BIO、NIO、AIO是三种不同的I/O(输入/输出)模型,它们代表了不同的I/O处理方式。 Netty就是基于Java的NIO(New Input/Output)类库编写的一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可…...
最新版 (持续更新)docker 加速源 linux yum 源
收藏两个网站,配置docker 加速源与yum 源。 docker 加速源链接 Docker/DockerHub 国内镜像源/加速列表(2月25日更新-长期维护)-腾讯云开发者社区-腾讯云https://cloud.tencent.com/developer/article/2485043 yum 源 CentOS7停服后yum源配置…...
MapReduce编程模型
MapReduce编程模型 理解MapReduce编程模型独立完成一个MapReduce程序并运行成功了解MapReduce工程流程掌握并描述出shuffle全过程(面试)独立编写课堂及作业中的MR程序理解并解决数据倾斜 1. MapReduce编程模型 Hadoop架构图 Hadoop由HDFS分布式存储、M…...
开源|Documind协同文档(接入deepseek-r1、支持实时聊天)
Documind 🚀 项目介绍 Documind 一个支持实时聊天和接入deepseek-r1模型AI助手的协同文档编辑项目 前端:NextJS React TailwindCSS ShadcnUl Tiptap Zustand后端:NextJS Convex Liveblocks Clerk项目预览:Documind 预览…...
【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝
【问题记录】Go项目Docker中的consul访问主机8080端口被拒绝 问题展示解决办法 问题展示 在使用docker中的consul服务的时候,通过命令行注册相应的服务(比如cloudwego项目的demo_proto以及user服务)失败。 解决办法 经过分析,是…...
`maturin`是什么:matu rus in python
maturin是什么 maturin 是一个用于构建和发布 Rust 编写的 Python 绑定库的工具。它简化了将 Rust 代码集成到 Python 项目中的过程,支持创建不同类型的 Python 包,如纯 Python 包、包含 **Rust (系统编程语言)**扩展模块的包等。以下为你详细介绍 maturin 的相关信息并举例…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_file_t
ngx_file_t 定义在 src/core/ngx_core.h typedef struct ngx_file_s ngx_file_t;ngx_file_s 定义 在 src/core/ngx_file.h struct ngx_file_s {ngx_fd_t fd;ngx_str_t name;ngx_file_info_t info;off_t …...
【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取
【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取 一、问题背景 政府的icp备案时,或者某些三方SDK以来的管理后台,都需要配置鸿蒙应用的公钥和证书MD5指纹 二、解决方案 专有名词解释: 华为AppGallery Connect简称 AGC平台࿰…...
登录次数限制
文章目录 一、应用场景与设计目的1. 应用场景2. 设计目的 二、功能设计1. 登录限制规则2. 解锁机制3. 适用维度 三、技术实现1. 数据存储2. 逻辑流程3. 实现代码示例4. 动态锁定时间 四、安全增强与扩展1. 防止用户名枚举2. 加入验证码3. 监控与报警4. 分布式支持 五、设计思考…...
两台互通的服务器使用Docker部署一主两从MySQL8.0.35
文章目录 1. 使用Docker Overlay网络(需Swarm模式)在服务器1(172.25.0.19)上:在服务器2(172.25.0.20)上:创建 overlay 网络(172.25.0.19): 2. 部署…...
使用Semantic Kernel:对DeepSeek添加自定义插件
SemanticKernel介绍 Semantic Kernel是一个SDK,它将OpenAI、Azure OpenAI等大型语言模型与C#、Python和Java等传统编程语言集成在一起。Semantic Kernel通过允许您定义插件来实现这一点。 为什么需要添加插件? 大语言模型虽然具有强大的自然语言理解和…...
DeepSeek + 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP
DeepSeek 自由职业 发现新大陆,从 0 到 1 全流程跑通商业 IP 商业定位1. 商业定位分析提示词2. 私域引流策略提示词3. 变现模型计算器提示词4. 对标账号分析提示词5. 商业IP人设打造提示词6. 内容选题策略提示词7. 用户人群链分析提示词8. 内容布局与转化路径设计提…...
mysql数据迁移到SQLserver: 构建数据迁移脚本
文章目录 引言转换方法将 MySQL 脚本转换为 SQL Server 脚本主要修改点I 迁移案例菜单数据迁移迁移脚本1迁移脚本2I MySQL中将INT类型转换为字符串的方法CAST函数(标准SQL)CONVERT函数(MySQL特有)隐式转换(上下文触发)修改表结构(永久转换)保留前导零用…...
【Python在校课堂笔记】Python第1节课 【课下总结】
2025 - 02 - 28 - 第 63 篇 Author: 郑龙浩 / 仟濹 【Python在校课堂笔记】 Python第1节课 【课下总结】 2025-02-27上课 写这篇笔记不仅仅为了写作业,也是想总结一下本节课的内容加深印象,同时发布博客方便复习。 一 print() 的多种使用 1 直接打印…...
3分钟idea接入deepseek
DeepSeek简介 DeepSeek 是杭州深度求索人工智能基础技术研究有限公司开发的一系列大语言模型,背后是知名量化资管巨头幻方量化3。它专注于开发先进的大语言模型和相关技术,拥有多个版本的模型,如 DeepSeek-LLM、DeepSeek-V2、DeepSeek-V3 等&…...
【论文学习】DeepSeek-R1 总结
文章目录 Abstract1. Introduction2. Approach2.1. Overview2.2. DeepSeek-R1-Zero: Reinforcement Learning on the Base Model2.3. DeepSeek-R1: Reinforcement Learning with Cold Start2.4. Distillation: Empower Small Models with Reasoning Capability 3. Experiment3.…...
《Python实战进阶》No 7: 一个AI大模型聊天室的构建-基于WebSocket 实时通信开发实战
第7集: 一个AI大模型聊天室的构建-基于WebSocket 实时通信开发实战 在现代 Web 开发中,实时通信已经成为许多应用的核心需求。无论是聊天应用、股票行情推送,还是多人协作工具,WebSocket 都是实现高效实时通信的最佳选择之一。本…...
五、数据库索引详解:作用、原理与使用指南
数据库索引详解:作用、原理与使用指南 一、索引的作用(为什么需要索引?) 1. 生活中的类比 想象你要在一本 500 页的书中快速找到「数据库索引」相关内容: 没有目录:需要逐页翻找 → 全表扫描有目录&…...
如果使用MODBUS通用类进行通信
1. 初始化串口 在使用 ModbusRTU 类之前,需要先初始化串口。以下是一个示例代码: cpp复制 // 初始化 ModbusRTU 对象 ModbusRTU modbus;// 配置串口参数 modbus.initializePort("COM5", 115200); // 使用 COM5 和波特率 115200 modbus.setD…...
osgEarth安装总结
第一步:安装OSG 直接通过git下载源码,使用cmake进行编译, git clone --depth 1 https://github.com/openscenegraph/OpenSceneGraph.git mkdir build cd build cmake .. make sudo make isntall编译过程中缺什么库,就安装什么库 …...
自动化测试无法启动(java.net.SocketException)
在运行测试代码,对浏览器进行自动化操作时,遇到了以下问题,添加依赖,编写了测试代码,但是程序无法运行 这个有两种原因(我使用的是谷歌浏览器): 网络问题: 因为需要从GitHub上下载对应包,所以有时候可能会出现网络问题,这个时候可以打开VPN之后,重新对程序进行启动 浏览器版本…...
MOM成功实施分享(七)电力电容制造MOM工艺分析与解决方案(第一部分)
声明:文章仅用于交流学习,不用于商业项目实施,图片来源于网络,如有侵犯权利,请联系作者及时删除。 本方案旨在对电力电容(PEC和PQM型号)制造工艺深度分析,结合管理要求设计MOM相关功…...
如何查看react的版本号
方法一:通过 package.json 查看(静态查看) 打开项目根目录下的 package.json 文件在 dependencies 或 devDependencies 字段中查找 react 和 react-dom 的版本号:{"dependencies": {"react": "^18.2.0&…...
STM32呼吸灯实验手册(TIM定时器)
一、实验目标 使用TIM定时器的PWM模式控制LED亮度实现LED渐亮渐灭的呼吸灯效果掌握HAL库的TIM配置方法 二、硬件准备 开发板:STM32F103C8T6LED模块:LED串联220Ω电阻两组USB-TTL调试器硬件连接 三、软件配置(STM32CubeMX) 打开…...
Element-Plus,使用 El-form中 的 scroll-to-error 没有效果问题记录
因业务需要表单组件中嵌套着表格列表,内容比较多; 所以需要表单校验不通过时,自动定位到不通过的节点; 但发现这个像是没有起到效果一样,后面就是排查的思路了: 容器高度问题:如果表单容器的高度…...
探究高空视频全景AR技术的实现原理
1. 引言 笔者认为现阶段AR技术的应用是还是比较坑爹的,大都是噱头多但是实用的成分少,拿出来做做DEMO是可以,但是难以在实际的项目中落地产生实际的经济价值。一方面是很难在业务上难以找到合适的应用场景(可能管线相关的项目算一…...
大连指令数据集的创建--数据收集与预处理_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 通过旁…...