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

Python----Python爬虫(selenium的使用,定位元素,层级定位)

一、介绍与安装

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器。

Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。

Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。

Selenium 官方参考文档:http://selenium-python.readthedocs.io/index.html

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple    

注意

selenium操作浏览器需要驱动(driver)

  • selenium版本是4.6.0以上,会自动下载

  • selenium版本是4.6.0以前,需要手动下载

第一个 selenium程序

from selenium.webdriver import  Edge
# 创建一个浏览器
edge=Edge()
# 发送请求
edge.get('https://www.baidu.com/')
# 获取HTML
page = edge.page_source
# 打印
print(page)
# 关闭浏览器
edge.quit()

二、控制浏览器

2.1、最大化窗口

edge.maximize_window()

from selenium.webdriver import  Edge
import time
# 创建一个浏览器
edge=Edge()
# 发送请求
edge.get('https://www.baidu.com/')
# 最大化窗口
edge.maximize_window()
# 设置等待时间,以便更清晰的观看到
time.sleep(5)
# 关闭浏览器
edge.quit()

2.2、设置高与宽

edge.set_window_size(500,500)

2.3、浏览器前进后退

前进

edge.forward()

后退

edge.back()

前进后退一体化展示

设计思路:

        1.从某网站到csdn

        2.从csdn到某网站

        3.从某网站再回到csdn

from selenium.webdriver import  Edge
import time
# 创建一个浏览器
edge=Edge()
# 发送请求
edge.get('https://www.baidu.com/')
# 设置等待时间
time.sleep(3)
# 请求到另一个网址
edge.get('https://www.csdn.net/?spm=1001.2014.3001.4476')
# 设置等待时间,以便更清晰的观看到
time.sleep(3)
# 后退
edge.back()
# 设置等待时间
time.sleep(5)
# 前进
edge.forward()
# 设置等待时间
time.sleep(5)
# 关闭浏览器
edge.quit()

三、定位元素

对象的定位应是自动化的核心。要操作一个对象,首先必须识别它。对象就像一个人一样,具有多种特征(属性),例如可以通过身份证号、姓名,或居住街道、楼层和门牌号来查找这个人。 Selenium定位元素的过程也可以借鉴这一点。

3.1、对象定位

webdriver提供了对象定位方法

        find_element(type,value)

        查找并返回页面上的第一个符合条件的单一元素。


        find_elements(type,value)

        查找并返回页面上所有符合条件的元素,返回一个元素列表。

  • type: 定位方式(定位器),可选值包括:
    • By.ID:通过元素的 ID 定位。
    • By.NAME:通过元素的 NAME 属性定位。
    • By.CLASS_NAME:通过元素的类名定位。
    • By.TAG_NAME:通过元素的标签名定位。
    • By.LINK_TEXT:通过链接文本定位。
    • By.PARTIAL_LINK_TEXT:通过部分链接文本定位。
    • By.XPATH:通过 XPath 表达式定位。
    • By.CSS_SELECTOR:通过 CSS 选择器定位。
  • value: 定位值,依赖于上述选择器类型。

3.2、操作元素 

在 Selenium 中,操作元素是自动化测试的核心部分。操作元素通常包括点击、输入文本、获取文本、清除文本、拖动等。

  • click 点击对象

  • send_keys 在对象上模拟按键输入

  • clear 清除对象的内容,如果可以的话

1. 点击元素

        方法click()

        用途:模拟用户点击某个元素(如按钮、链接等)。

2. 输入文本

        方法send_keys()

        用途:在输入框中输入文本或字符。

3. 清除输入框内容

        方法clear()

        用途:清除输入框或文本区域中的内容。

3.3、展示 

1.获取输入框input的id元素

2.在输入框中输入csdn

3.加入点击事件,使得网页进入csdn网页

from selenium.webdriver.common.by import By
from selenium.webdriver import  Edge
import time
# 创建一个浏览器
edge=Edge()
# 发送请求
edge.get('https://www.baidu.com/')
# 设置等待时间
time.sleep(3)
# 找到id并输入csdn
edge.find_element(By.ID,"kw").send_keys('csdn')
time.sleep(1)
# 找到搜索并加入点击事件
edge.find_element(By.ID,"su").click()
# 设置等待时间
time.sleep(3)
# 关闭浏览器
edge.quit()

 四、定位下拉菜单

在爬取数据时,有时数据太多,而官网提供了筛选功能select标签,像这样的数据,我们只需要定位元素,点击即可

 HTML界面

元素定位

<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>Level Locate</title>        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script><link href="https://cdn.jsdelivr.net/npm/@bootcss/v3.bootcss.com@1.0.9/dist/css/bootstrap.min.css" rel="stylesheet" />        </head><body><h3>Level locate</h3><div class="span3 col-md-3">        <div class="well"><div class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Link1</a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" id="dropdown1" ><li><a tabindex="-1" href="https://www.csdn.net/?spm=1001.2014.3001.4476">Action</a></li><li><a tabindex="-1" href="#">Another action</a></li><li><a tabindex="-1" href="#">Something else here</a></li><li class="divider"></li><li><a tabindex="-1" href="#">Separated link</a></li></ul></div>                </div>            </div><div class="span3 col-md-3">        <div class="well"><div class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Link2</a><ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" ><li><a tabindex="-1" href="#">Action</a></li><li><a tabindex="-1" href="#">Another action</a></li><li><a tabindex="-1" href="#">Something else here</a></li><li class="divider"></li><li><a tabindex="-1" href="#">Separated link</a></li></ul></div>                </div>            </div></body><script src="https://cdn.jsdelivr.net/npm/@bootcss/v3.bootcss.com@1.0.9/dist/js/bootstrap.min.js"></script></html>
from selenium.webdriver.common.by import By
from selenium.webdriver import  Edge
import time
# 创建一个浏览器
edge=Edge()
# 发送请求
edge.get(r'test01.html')
# 设置等待时间
time.sleep(3)
# 找到class属性
edge.find_element(By.CLASS_NAME,"dropdown-toggle").click()
time.sleep(1)
# 找到要移动的位置加入点击事件
edge.find_element(By.LINK_TEXT,'Action').click()
# 设置等待时间
time.sleep(3)
# 关闭浏览器
edge.quit()

五、层级定位 

在现代 Web 应用中,常常会使用框架(iframe)或新窗口,这可能会给元素定位带来挑战。即使定位器正确,如果元素位于一个框架内,也可能无法成功定位。这时,就需要检查元素是否在框架中。

Selenium WebDriver 提供了 switch_to.frame() 方法,可以轻松切换到指定框架,从而解决问题。

 switch_to.frame()

1.界面展示

 inner.html

<html>
<head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>inner</title>
</head>
<body><div class="row-fluid"><div class="span6 well"><h3>inner</h3><iframe id="f2" src="https://www.csdn.net/?spm=1001.2014.3001.4476" width="1400" height="1100"></iframe></div></div>
</body>
</html>

outer.html

<html>
<head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>frame</title><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script><link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"rel="stylesheet" />
</head><body><div class="row-fluid"><div class="span10 well"><h3>frame</h3><iframe id="f1" src="inner.html" width="1500" , height="1200"></iframe></div></div>
</body>
<script src="https://cdn.jsdelivr.net/npm/@bootcss/v3.bootcss.com@1.0.8/dist/js/bootstrap.min.js"></script></html>
</html>
from selenium.webdriver.common.by import By
from selenium.webdriver import  Edge
import time
# 创建一个浏览器
edge=Edge()
# 发送请求
edge.get(r'outer.html')
# 设置等待时间
time.sleep(3)
# 切换frame
edge.switch_to.frame('f1')
edge.switch_to.frame('f2')
# 设置等待时间
time.sleep(3)
# 定位元素,输入要搜索的内容
edge.find_element(By.ID,'toolbar-search-input').send_keys('蹦蹦跳跳真可爱589')
# 设置等待时间
time.sleep(3)
# 定位按钮,点击搜索
edge.find_element(By.ID,'toolbar-search-button').click()
# 设置等待时间
time.sleep(3)
# 关闭浏览器
edge.quit()

相关文章:

Python----Python爬虫(selenium的使用,定位元素,层级定位)

一、介绍与安装 Selenium是一个Web的自动化测试工具&#xff0c;最初是为网站自动化测试而开发的&#xff0c;类型像我们玩游戏用的按键精灵&#xff0c;可以按指定的命令自动操作&#xff0c;不同是Selenium 可以直接运行在浏览器上&#xff0c;它支持所有主流的浏览器。 Sele…...

Docker 服务、镜像、容器之命令(Docker Services, Images, and Container Commands)

Docker 服务、镜像、容器之命令 Docker是一个强大的容器化平台&#xff0c;能够帮助开发者高效地构建、部署和管理应用程序。本文将详细介绍Docker的服务命令、镜像命令和容器命令&#xff0c;帮助你快速上手Docker。 一、Docker的服务相关命令 在使用Docker之前&#xff0c…...

当歌 - RSS 订阅分发平台开发

以下将详细介绍当歌平台的技术架构、功能实现以及相关代码逻辑。 一、项目概述 当歌是一个极简的 RSS 订阅分发平台&#xff0c;旨在为用户提供便捷的 RSS 管理和订阅服务&#xff0c;帮助用户轻松获取和分享最新资讯。 二、技术架构 后端语言&#xff1a;PHP 数据库&#…...

vue3使用AntV X6 (图可视化引擎)历程[二]

通过h函数动态展示自定义节点内容 一、案例效果 二、案例代码 父组件. BloodTopology.vue <template><div><TopologyCompact><template #main-board-box><TopologyDependent domId"featureBloodContainer" :nodeData"originalNode…...

爬虫学习记录

1.概念 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 通用爬虫:抓取的是一整张页面数据聚焦爬虫:抓取的是页面中的特定局部内容增量式爬虫:监测网站中数据更新的情况,只会抓取网站中最新更新出来的数据 robots.txt协议: 君子协议,网站后面添加robotx.txt…...

Erlang语言的函数实现

Erlang语言函数实现的深度探讨 引言 Erlang是一种并发编程语言&#xff0c;最初由爱立信公司为电信系统开发。它以其强大的并发处理能力和容错机制而闻名&#xff0c;广泛应用于实时系统和分布式系统。本文将详细探讨Erlang语言中的函数实现&#xff0c;包括函数的定义、调用…...

LLM之RAG实战(五十一)| 使用python和Cypher解析PDF数据,并加载到Neo4j数据库

一、必备条件&#xff1a; python语言Neo4j数据库python库&#xff1a;neo4j、llmsherpa、glob、dotenv 二、代码&#xff1a; from llmsherpa.readers import LayoutPDFReaderfrom neo4j import GraphDatabaseimport uuidimport hashlibimport osimport globfrom datetime …...

单例模式-如何保证全局唯一性?

以下是几种实现单例模式并保证全局唯一性的方法&#xff1a; 1. 饿汉式单例模式 class Singleton { private:// 私有构造函数&#xff0c;防止外部创建对象Singleton() {}// 静态成员变量&#xff0c;存储单例对象static Singleton instance; public:// 公有静态成员函数&…...

05、Docker学习,常用安装:Mysql、Redis、Nginx、Nacos

Docker学习&#xff0c;常用安装&#xff1a;Mysql、Redis、Nginx、Nacos 一、Docker安装Mysql 1、docker search mysql ##查找mysql版本都有哪些 2、docker pull mysql:5.6 ##下载5.6版本的mysql镜像 3、docker run -p 13306:3306 --name mysql ##运行…...

docker 启动redis 守护进程

文章目录 前言一、整体流程二、状态图三、结语 前言 在现代软件开发中&#xff0c;缓存和消息队列是提高应用性能和扩展性的关键。Redis 是一种流行的内存数据结构存储系统&#xff0c;它支持多种类型的数据结构&#xff0c;如字符串、哈希、列表、集合、有序集合等。使用 Doc…...

Angular由一个bug说起之十三:Cross Origin

跨域 想要了解跨域&#xff0c;首要要了解源 什么是源&#xff0c;源等于协议加域名加端口号 只有这三个都相同&#xff0c;才是同源&#xff0c;反之则是非同源。 比如下面这四个里&#xff0c;只有第4个是同源 而浏览器给服务器发送请求时&#xff0c;他们的源一样&#xff0…...

为深度学习引入张量

为深度学习引入张量 什么是张量&#xff1f; 神经网络中的输入、输出和转换都是使用张量表示的&#xff0c;因此&#xff0c;神经网络编程大量使用张量。 张量是神经网络使用的主要数据结构。 张量的概念是其他更具体概念的数学概括。让我们看看一些张量的具体实例。 张量…...

opencv摄像头标定程序实现

摄像头标定是计算机视觉中的一个重要步骤&#xff0c;用于确定摄像头的内参&#xff08;如焦距、主点、畸变系数等&#xff09;和外参&#xff08;如旋转矩阵和平移向量&#xff09;。OpenCV 提供了方便的工具来进行摄像头标定。下面分别给出 C 和 Python 的实现。 1. C 实现…...

Flutter:封装一个自用的bottom_picker选择器

效果图&#xff1a;单列选择器 使用bottom_picker: ^2.9.0实现&#xff0c;单列选择器&#xff0c;官方文档 pubspec.yaml # 底部选择 bottom_picker: ^2.9.0picker_utils.dart AppTheme&#xff1a;自定义的颜色 TextWidget.body Text() <Widget>[].toRow Row()下边代…...

Docker 容器自动化管理之脚本(Script for Docker Container Automation Management)

Docker 容器自动化管理之脚本 简介 Docker‌是一个开源的容器化平台&#xff0c;旨在简化应用程序的开发、部署和运行过程。它通过将应用程序及其依赖项打包到一个可移植的容器中&#xff0c;使得开发人员能够在不同的环境中以一致的方式构建、打包和分发应用程序‌。 Docke…...

client-go中watch机制的一些陷阱

Reference https://stackoverflow.com/questions/51399407/watch-in-k8s-golang-api-watches-and-get-events-but-after-sometime-doesnt-get-an 问题描述 最近在使用 client-go 的 watch 机制监听 k8s 中的 deployment 资源时&#xff0c;发现一个奇怪的现象 先看下代码&a…...

用户界面的UML建模11

然而&#xff0c;在用户界面方面&#xff0c;重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。 《exception》类的对象可以作为《control》类的对象。因此&#xff0c;《exception》类能够聚合《boundary》类。 参见图12&#xff0c;《exception》Database…...

计算机网络之---数据链路层的功能与作用

数据链路层概念 数据链路层&#xff08;Data Link Layer&#xff09;是计算机网络中的第二层&#xff0c;它位于物理层和网络层之间&#xff0c;主要负责数据在物理链路上的可靠传输。其基本功能是将网络层传来的数据分成帧&#xff0c;并负责在物理链路上可靠地传输这些数据帧…...

添加到 PATH 环境变量中

命令解释 # 将命令中的<CLI_PATH>替换为您aliyun文件的所在目录。 echo export PATH$PATH:<CLI_PATH> >> ~/.bash_profile echo export PATH$PATH:/data2/ljsang/aliyun/aliyun >> ~/.bash_profileexport PATH$PATH:/data2/ljsang/aliyun/aliyun&…...

【51单片机零基础-chapter6:LCD1602调试工具】

实验0-用显示屏LCD验证自己的猜想 如同c的cout,前端的console.log() #include <REGX52.H> #include <INTRINS.H> #include "LCD1602.h" int var0; void main() {LCD_Init();LCD_ShowNum(1,1,var211,5);while(1){;} }实验1-编写LCD1602液晶显示屏驱动函…...

Linux 内核中的 netif_start_queue 函数:启动网络接口发送队列的关键

在 Linux 内核的网络子系统中,netif_start_queue 函数扮演着至关重要的角色。这个函数的主要功能是启动(或启用)网络接口的发送队列,标志着网络接口已经准备好开始发送数据包。本文将深入探讨 netif_start_queue 函数的用途、工作原理以及在实际网络驱动代码中的应用。 函…...

(七)人工智能进阶之人脸识别:从刷脸支付到智能安防的奥秘,小白都可以入手的MTCNN+Arcface网络

零、开篇趣谈 还记得第一次用支付宝"刷脸"时的新奇感吗&#xff1f;或者被抖音的人脸特效逗乐的瞬间&#xff1f;这些有趣的应用背后&#xff0c;其实藏着一个精妙的AI世界。今天&#xff0c;就让我们开启一段奇妙的人脸识别技术探索之旅吧&#xff01; 一、人脸识…...

ExcelDataReader:一个.Net高性能Excel开源读取器

推荐一个用于读取Microsoft Excel文件的高性能开源库。 01 项目简介 ExcelDataReader是一个功能强大且易于使用的开源项目&#xff0c;提供了丰富的读取API&#xff0c;专门读取Excel文件的数据&#xff0c;特别是处理大数据量的情况。 ExcelDataReader支持Excel版本从2007年…...

人工智能-机器学习之多元线性回归(项目实践一)

目标&#xff1a;运用scikit-learn进行多元线性回归方程的构建&#xff0c;通过实际案例的训练集和测试集进行预测&#xff0c;最终通过预测结果和MSE来评估预测的精度。 一、首先安装scikit-learn&#xff1a;pip install scikit-learn C:\Users\CMCC\PycharmProjects\AiPro…...

Mysql--基础篇--约束(主键,外键,唯一,检查,枚举及复合约束等)

在MySQL中&#xff0c;约束&#xff08;Constraints&#xff09;是用于确保数据库中数据完整性和一致性的规则。通过定义约束&#xff0c;可以防止用户插入、更新或删除不符合特定条件的数据&#xff0c;从而保证数据的准确性和可靠性。MySQL支持多种类型的约束&#xff0c;每种…...

经典多模态模型CLIP - 直观且详尽的解释

对比语言-图像预训练&#xff08;CLIP&#xff09;&#xff0c;这是一种创新的多模态建模策略&#xff0c;能够创建视觉和语言的联合表示。CLIP 的效果非常出色&#xff0c;可以用于构建高度特定且性能卓越的分类器&#xff0c;而无需任何训练数据。本文将深入探讨其理论基础&a…...

着丝粒鉴定CentIER v3.0安装与使用-bioinfomatics tools41

使用CentIE鉴定着丝粒 T2T基因组端粒与着丝粒的区别及其鉴定方法-随笔02_chip-seq鉴定着丝粒-CSDN博客 T2T时代的基因组组装-文献精读-9_基因组t2t组装-CSDN博客 桑树T2T基因组-文献精读16_桑树基因组-CSDN博客 辣椒属2个T2T基因组-文献精读23_辣椒基因组-CSDN博客 大花…...

Objective-C语言的多线程编程

Objective-C语言的多线程编程 在现代应用程序开发中&#xff0c;尤其是移动应用开发&#xff0c;多线程编程是一个不可或缺的部分。使用多线程可以提升应用的响应能力&#xff0c;使得可以同时处理多个任务&#xff0c;从而优化用户体验。在本文中&#xff0c;我们将深入探讨O…...

Golang的并发编程框架比较

# Golang的并发编程框架比较 中的并发编程 在现代软件开发中&#xff0c;处理高并发的能力愈发重要。Golang作为一门支持并发编程的编程语言&#xff0c;提供了丰富的并发编程框架和工具&#xff0c;使得开发者能够更轻松地处理并发任务。本文将介绍Golang中几种常用的并发编程…...

通过 oh-my-posh posh-git 优化PowerShell

转自oh-my-posh & posh-git 提升在 windows 环境的开发体验 oh-my-posh 是用于自定义 PowerShell 主题和配色的工具&#xff0c;posh-git 则是为 PowerShell 提供了方便的 git 状态显示和命令补全功能。 安装PowerShell 7和 winget下载器&#xff0c;都可以直接在 Microsof…...

【Linux系列】Vim 编辑器中的高效文本编辑技巧:删除操作

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

慧集通(DataLinkX)iPaaS集成平台-连接器

如何创建连接器&#xff1f; 连接器是用于跟各系统进行连接&#xff0c;是集成交互的基础构成也是主要构成之一&#xff1b;连接器一般是根据业务系统的开放的不同方式由开发人员进行封装&#xff0c;封装完成后交付人员可以在所有连接那里建立对应的连接&#xff0c;连接需要…...

vue3使用vue3-video-play播放m3u8视频

1.安装vue3-video-play npm install vue3-video-play --save2.在组件中使用 import vue3-video-play/dist/style.css; import VideoPlay from vue3-video-play;// 视频配置项 const options reactive({src: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8, //视频源mute…...

单片机-外部中断

中断是指 CPU 在处理某一事件 A 时&#xff0c;发生了另一事件 B&#xff0c;请求 CPU 迅速去处理(中断发生)&#xff1b;CPU 暂时停止当前的工作(中断响应)&#xff0c; 转去处理事件 B(中断服务)&#xff1b;待 CPU 将事件 B 处理完毕后&#xff0c;再回到原来事件 A 被中断的…...

《C++11》右值引用深度解析:性能优化的秘密武器

C11引入了一个新的概念——右值引用&#xff0c;这是一个相当深奥且重要的概念。为了理解右值引用&#xff0c;我们需要先理解左值和右值的概念&#xff0c;然后再理解左值引用和右值引用。本文将详细解析这些概念&#xff0c;并通过实例进行说明&#xff0c;以揭示右值引用如何…...

【HTML+CSS+JS+VUE】web前端教程-1-VScode开发者工具快捷键

VScode打开文件夹与创建文件 1、选择文件夹 2、拖拽文件夹 生成浏览器文件.html的快捷方式 ! 回车vscode常用快捷键列表 代码格式化&#xff1a;shift alt F 向上或向下移动一行&#xff1a; alt up 或者 alt down 快速复制一行代码&#xff1a;shift alt up 或者 sh…...

【嵌入式硬件】直流电机驱动相关

项目场景&#xff1a; 驱动履带车&#xff08;双直流电机&#xff09;前进、后退、转弯 问题描述 电机驱动MOS管烧毁 电机驱动采用IR2104STRH1R403NL的H桥方案&#xff08;这是修改之后的图&#xff09; 原因分析&#xff1a; 1.主要原因是4路PWM没有限幅&#xff0c;修改…...

接口测试-postman(使用postman测试接口笔记)

一、设置全局变量 1. 点击右上角设置按钮-》打开管理环境窗口-》选择”全局“-》设置变量名称&#xff0c;初始值和当前值设置一样的&#xff0c;放host放拼接的url&#xff0c;key放鉴权那一串字符&#xff0c;然后保存-》去使用全局变量&#xff0c;用{{变量名称}}形式 二、…...

强化学习常用库的版本对应关系

本文介绍了pytorch强化学习框架和常用python库的对应关系。 持续更新中! 基础包 工具包版本描述python3.9.13-numpy1.24.3-protobuf3.19.6结构化数据包cython0.29.21静态编译器setuptools66.0.0-学习框架 工...

Unity 热更新基础知识

文章目录 1.一些名词2.三种编译方式3.Unity 两种脚本后端3.1 Mono3.2 IL2CPP3.3 对比 1.一些名词 IL&#xff08;Intermediate Language&#xff09;&#xff1a;中间语言&#xff08;类似于汇编代码&#xff09;CIL&#xff08;Common Intermediate Language&#xff09;&…...

JetBrains IDEs和Visual Studio Code的对比

JetBrains IDEs和Visual Studio Code的对比 JetBrains IDEs是捷克JetBrains公司开发的一系列集成开发环境(IDE)。以下是具体介绍:IntelliJ IDEA是JetBrains 公司的一款产品 主要产品 IntelliJ IDEA:一款功能强大且广泛应用的Java集成开发环境,有开源免费的社区版和商业收…...

C语言将点分十进制的IP字符串转成4个整数

最近在做lldp的snmp返回值时需要做这样的转换处理&#xff1a;C语言将点分十进制的IP字符串转成4个整数。 这里用两种方式&#xff1a; sscanf格式化处理用 inet_aton函数将ip字符串转成32位的整形&#xff0c;然后再根据bit转成对应的4个整数。 man命令可以确认下sscanf和i…...

慧集通(DataLinkX)iPaaS集成平台:数据流程的基本操作

流程搭建与发布 该功能下是我们集成的流程配置实现&#xff0c;在这里我们可以通过搭建一条条不同的流程来实现不同的业务场景。列表界面如下所示&#xff1a; 下面我们做一个业务场景的流程来具体讲解下该功能&#xff08;OA销售单推送T销售出库单场景&#xff09;。 首先…...

三线结构光避障远近有度,石头自清洁扫拖机器人G30上市

1月8日&#xff0c;石头科技发布新一代自清洁扫拖机器人产品G30&#xff0c;以卓越的旗舰级性能&#xff0c;为用户带来了更为全面极致的清洁体验。在本届CES2025展会期间&#xff0c;石头G30现身石头科技展台&#xff0c;彰显极致清洁科技。 据「TMT星球」了解&#xff0c;石头…...

深入理解 React 中 setState 的行为及状态更新时机

在 React 开发中&#xff0c;setState 是我们更新组件状态的核心 API。然而&#xff0c;setState 的行为因调用场景的不同而有所变化&#xff0c;这可能会让许多开发者感到困惑。特别是在 React 18 中&#xff0c;引入了自动批量更新机制&#xff0c;使得部分场景的行为发生了变…...

一次完成Win10下MySQL 9.1 的安装

文章目录 前言一、 安装环境二、 安装方式选择三、下载四、安装 总结 前言 一、 安装环境 1、MySQL9.1.0.zip 下载地址&#xff1a;https://dev.mysql.com/downloads/mysql/ 2、Win10 3、客户端MySQL Workbench8.0 CE 下载地址&#xff1a;https://dev.mysql.com/downloads/w…...

有限元分析学习——Anasys Workbanch第一阶段笔记(8)水杯案例的对称与轴对称处理

目录 1 序言 2 对称处理 2.1 模型处理 2.2 网格划分、约束载荷及接触设置 2.3 计算结果 3 轴对称处理 3.1 对称与轴对称概念 3.2 轴对称问题的应用 3.2.1 创建分析案例 3.2.2 导入并处理模型 3.2.3 网格划分、约束载荷及接触设置 3.2.4 后处理计算结果 1 序言 本章…...

Vmware安装centos

用来记录自己安装的过程 一、创建虚拟机安装centos镜像 点击完成后&#xff0c;等待一会会进入centos的系统初始化界面 二、centos初始化配置 三、配置网络 1、虚拟网络编辑器&#xff0c;开启VMnet1、VMnet8的DHCP vmware左上角工具栏&#xff0c;点击【编辑】->【虚拟网…...

[Unity]MacOS下开发Unity

需要的插件 我使用的是vscode&#xff0c;经过长时间的使用我发现一个问题就是很多插件都是动态的在变化的&#xff0c;不是一成不变的&#xff0c;可能是重构&#xff0c;可能直接换了其他的工具。 所以这个插件也会是更新的状态。 2025年01月08日更新 .NET Install Tool …...

快手短剧播放器uniapp如何引入与对接?

uniApp前端微短剧项目开源分享 开源地址&#xff1a;git开源下载地址 文章目录 快手短剧播放器uniapp如何引入与对接&#xff1f;1.引入短剧播放器2.创建文件kscomponents组件3.local-stream.js文件说明4.用户行为事件4.local-stream.ksml文件参考如下 快手短剧播放器uniapp如何…...