影刀--- 自动化机器人需要了解的三大逻辑

news2024/11/17 14:33:31

在这里插入图片描述

这篇文章主要就是在影刀这个软件中对于循环和条件命令的使用,进行各种逆天操作

希望大家多多支持啊

目录

    • 1.条件判断的基本用法(单分支)
    • 2.二分支
    • 3.多分支
    • 4.条件的嵌套与多条件判断](https://flowus.cn/ceb9d0ea-1963-418d-b782-d2d77bfb6e53)![在这里插入图片描述
    • 5.其他类型的判断
    • 6.条件判断的回顾
    • 7.循环
    • 8.循环的构成
    • 9.ForEach列表循环
    • 10.循环相似元素
    • 11.For次数循环
    • 12.循环的嵌套
    • 13.循环的控制(break和continue)
    • 14.三大循环

1.条件判断的基本用法(单分支)

之所以使用到条件判断因为一件事由多种的可能性,我们需要对其进行判断的操作

我们在这个左侧栏的最上面就能找到条件判断
在这里插入图片描述

我们现在做一个简单的条件判断,3是不是大于2在这里插入图片描述
并且我们在中间进行日志的打印,如果是真的话,那么就打印日志里面的内容在这里插入图片描述
如果这个判断时真的话,那么我们就会执行if条件和end if中间的内容

如果判断内容是假的,不成立的话就直接跳过去

直接执行end if后面的内容了

那么这个条件判断我们就可以放在我们之前创建出的第一个机器人里面

如果我们输入的内容是订单里面不存在的话,那么我们就不进行后续的数据抓取的操作了

如果搜出来我们就进行一个数据抓取的功能

这个条件可以加在这个清空数据表格之前

那么我们应该选择哪个条件判断呢?

我们可以选择左侧栏中这个IF网页包含拖出来,拖到这个清空数据表格之前的位置

这个其实很容易理解,就是判断网页上面有没有对应的元素
在这里插入图片描述

接下来我们就进行一个元素的捕获操作了

我们可以思考下,搜到商品的网页和搜不到网页的商品之间的区别了

在这里插入图片描述
我们可以发现搜到订单的时候是有下一页的按钮的,但是右边搜不到的话就没有下一页的按钮的

那么我们就可以利用下一页按钮来当做一个判断的条件,一个元素

我们点击完搜索之后我们可以进行这个下一页元素的判断,看看这个元素是否存在,如果存在的话就说明我们输入的这商品是存在的,如果是没有这个元素的话就说明是不存在的

在这里插入图片描述
我们通过IF网页包含判断当前网页上面是否存在这个下一页的按钮来判断我们输入的商品是否存在

如果包含这个下一页的按钮,我们就进行抓数据的操作

我们将抓取数据和导出这两步操作折叠收起来放在这个IF网页包含里面

如果包含的话就进行判断里面的命令操作

在这里插入图片描述
我们在程序中输入小猫这搜索条件,然后运行程序,因为不存在,所以直接跳出来了在这里插入图片描述
除了这个通过下一页按钮来判断的操作,我们还能通过整个页面进行判断,我们再次观察这个页面,我们可以发现我们如果搜索不到对应的商品的话,这个页面会显示暂无数据

如果存在的话是会显示对应商品的数据表格的
在这里插入图片描述
我们可以将这个暂无数据进行一个元素捕获

我们还是通过IF网页包含的操作,选择里面的不包含元素,这个元素就是我捕获的这个暂无数据

如果不包含这个暂无数据的话,那么就说明我们搜的商品存在
在这里插入图片描述

到这里我们进行归纳:为什么进行判断,因为一件事存在多种可能,

我们在这里通过对两种情况的对比(商品存在和不存在)我们发现下一页按钮的区别和页面元素的区别

我们再通过IF网页包含进行判断,将抓取数据和导出数据放在这个判断里面,如果判断是真的话,就进行判断中的操作

那么我们通过判断网页元素存在与否我们知道这个判断可以是正向判断,也可以是反向判断

但是一般来说,正向判断更加符合逻辑思维

2.二分支

现在呢,我们已经可以判断我们输入的商品是否存在

那么现在我们需要做一些操作

如果这个商品不存在的话我们就需要打印日志

那么这里就涉及到了if else的组合操作了

如果IF网页包含这个判断里面的条件为真,就进行IF里面的命令

如果为假的话,就进行else里面操作

我们在结束判断之前加上这个else判断操作
在这里插入图片描述
进行完操作就会打印内容不存在的消息
在这里插入图片描述
在这里插入图片描述

3.多分支

在这里插入图片描述
我们先创建一个自定义对话框,然后输入一种颜色,然后我们在影刀商城这个页面,如果我们输入的是红色的话就勾选红色的对话框,如果是黄色的话就勾选黄色的对话框

那么这种就是一个典型的多分支的情况
在这里插入图片描述

在这里插入图片描述
我们先设置一个变量用来接受我们输入的商品名字在这里插入图片描述
我们可以通过这个打印进行观察在这里插入图片描述
接下来我们对颜色进行一个判断的操作

我们在这个if条件中放入一个元素操作中的设置复选框,进行一个复选框的点击操作,如果我们输入的符合这个判断条件的话我们就进行复选框的勾选操作
在这里插入图片描述
如果我们输入的是黄色呢?那么我们就进行黄色的复选框的勾选

那么这里我们就会用到else if

如果if判断不满足的话,那么我们就在剩下的选项中进行判断操作

如果等于黄色的话我们就进行复选框的设置操作

在这里插入图片描述
如果我们输入的是白色的话,这些条件都不满足,那么我们就加个else的指令

4.条件的嵌套与多条件判断在这里插入图片描述

上面几节课程学到的知识点
在这里插入图片描述
在日常生活中我们经常会以两个或者是多个条件进行判断我们是否需要进行对应的操作在这里插入图片描述
在这个嵌套里面同时满足这两种情况我们才会做出对应的操作

判断中存在另一个判断的话我们就称这个叫做条件嵌套

那么对于这个图的话我们需要先判断状态那一栏的元素是不是完成的

我们接下来要使用到网页自动化里面的数据提取里面的获取元素信息的指令

在这里插入图片描述
我们需要获取商品状态元素的内容,然后对这个内容进行判断,符不符合完成在这里插入图片描述
如果状态元素等于完成的话那么我们就执行if语句内的命令,不等于的话就跳过在这里插入图片描述
设置第二个条件,就是内置的条件,如果这个也满足的话我们就进行发货操作在这里插入图片描述
在这里插入图片描述
那么这个条件的嵌套我们就实现了

我们实现了通过对个条件来判断要不要做一件事情

主要流程:我们先拿到商品的状态元素的内容,满足的话就进行If条件里面的内容

然后我们就进行获取商品名称的内容,如果不等于篮球鞋的话我们就进入到里面的命令操作进行发货的操作

这里的话获取元素信息在这个网页自动化的元素操作里面的,这个很重要的

我们这里仅仅只是两层判断,如果是多层判断呢?我们一个个添加这个if命令会显得很乱,很复杂

是否存在这么一种方法:既实现了嵌套,看着也很整齐

那么这里就涉及到了一个指令叫做if多条件
在这里插入图片描述
在这里插入图片描述
这里就能进行多个条件的嵌套操作了

并且符合以下的全部条件,那么这个条件判断结果就是真的

将需要判断的两个条件都写在这里

在这里插入图片描述
如果我们在IF多条件中选择这个符合以下任意条件的话,只要有一个条件是真的,那么整个都是真的
在这里插入图片描述

5.其他类型的判断

除了条件的判断,还存在其他的判断

第一类:数理的判断:5比4吗?

第二类:包含判断 :网页上面包不包含某个元素

第三类:存在判断 :卓面上存在XXX这个文件夹码
在这里插入图片描述

还可以在if语句中进行包含的判断在这里插入图片描述
还是说判断列表中是否包含某个元素在这里插入图片描述

6.条件判断的回顾

在这里插入图片描述

7.循环

我们搜索完连衣裙之后我们再搜索篮球鞋,我们再搜索短袖T恤

这个重复的动作,每次的操作对象都是不一样的,但是大致的动作是一样的

那么这个时候我们就可以用到循环了

8.循环的构成

我们这里拉出了一个for循环在这里插入图片描述
在这里插入图片描述
我们设置好起始数为1,结束数为10,每次以1进行递增操作

我们通过这个循环10次,每次循环的数字保存在loop_index中,我们在循环中间加上一个打印日志的操作,就能看清楚每次循环的操作了
在这里插入图片描述
这个循环和python 、c/c++中的for循环是一个道理的

对于这个for次数循环来说的话,我们循环进行打印这日志的操作

9.ForEach列表循环

我们搜索完第一个商品,然后搜索第二个,第三个,那么这个循环操作我们可以使用到这个ForEach列表循环

我们先搭建搜索一件商品的流程

这里我们就实现了一个商品的搜索和数据抓取的操作
在这里插入图片描述
我们将ForEach列表循环拉出来,然后点亮Python的标志,然后进行列表的创建操作
在这里插入图片描述
我们将填写输入框搜索已经抓取数据的操作放到循环里面去在这里插入图片描述
现在我们往这填写输入框里面输入的内容就不是固定的内容,而是每次进行循环循环出的内容

也就是每次待搜索的商品名称在这里插入图片描述

那么我们这里就通过循环实现了多个不同种类的商品的搜索以及数据的抓取操作

我们感觉这个主要还是我们将所有需要搜索的商品做成一个列表放到循环体里面,每次循环拿出来一个放到搜索框里面去,这样我们就能将所有类型的商品都拿出来,将数据进行抓取的操作

在这里插入图片描述
每次循环拿出来的变量就存放在这个待搜索的商品名称,然后我们填写输入框就将这个待搜索的商品名称放进去

当我们遇到将每一个内容拿出来进行处理的这种场景,我们就可以将ForEach列表循环拿出来

10.循环相似元素

我们现在需要对一个页面上多个订单进行一个发货的操作,那么我们应该怎么进行一个操作呢

这个就是我们需要将把处理一个订单的事情进行一个循环操作
在这里插入图片描述

我们先将这个确认发货这么一列的相似元素进行捕获操作,然后在这个循环相似元素中进行循环的操作

我们对于一个操作的话,点击完确认发货之后我们还要点击确认,然后将这两个操作放到循环里面

对于这个循环相似元素的话,这个相似元素就是我们捕获的这个确认发货的按钮,每次循环出的这个都会存放在web_loop_element里面进行存放,所以我们在点击元素的时候我们选择这个变量的名字

在这里插入图片描述
然后就能实现循环点击的操作了

循环相似元素的时候我们将所有的相似元素进行循环的操作,

11.For次数循环

对于处理多页的订单

我们通过多次循环进行多页订单的一个翻页操作

在这里插入图片描述
我们在循环中每处理完一页的订单就进行翻页的操作

我们在每次翻页之前判断我们当前的页数有没有超标

所以我们添加一个if条件

在这里插入图片描述
如果这个loop_index不等于5的话,说明我们的当前页数没有到最后一次循环在这里插入图片描述
如果当前页面不等于5的话,我们就可以进行下一页按钮的点击操作

对于这个页数的话,我们在批量数据抓取的时候介绍过这个方法,获取这个最大的页数

12.循环的嵌套

我们在数据抓取的时候介绍过关于如何获取这最大的页码数

我们可以发现最大的页码其实在这组相似元素的倒数第二个位置

我们现在相似元素操作的时候获取相似元素列表

在这里插入图片描述
我们需要获取这页码相似元素组的文本内容,然后将文本内容保存在web_element_list这个变量中在这里插入图片描述
那么这里打印出来的就是一个列表了,最大的页码数就是在倒数第二个位置上了

然后我们设置一个变量来赋值成为这个页码最大的数

在这里插入图片描述
在这里插入图片描述
然后我们的循环体里面的结束值就不用这个固定的数字了,直接放上我们通过方法得到的最大页码数代表的变量就行了,同样我们在这个IF条件里面也将这个最大页码数放进去在这里插入图片描述
如果还想添加这个发货的操作的话,我们可以在这个循环一起进行的在这里插入图片描述
我们先将发货那一列的相似元素进行捕获的操作,然后循环相似元素,每次循环就进行点击这个相似元素以及点击确认操作

这里我们写完了发现有两个循环,我们可以发现外面循环是专门进行翻页操作的,而里面的内循环是进行点击确认发货的

在这里插入图片描述

13.循环的控制(break和continue)

对于上面的那个嵌套循环,我们好像非要等到循环完成之后我们才能对循环进行控制,在循环进行的时候我们是控制不了的,那么我们有没有什么方法进行循环的控制呢?

我们希望在循环中保持对循环控制的权利

在这里插入图片描述
现在呢,我们的连衣裙没货了,我们现在想要跳过去,进行其他商品的数据抓取操作

我们先使用IF条件进行判断一下

在这里插入图片描述
判断当前的商品是不是等于连衣裙,如果是连衣裙的话我们就跳过去

我们在循环的积木盒子里面可以找到一个命令叫做继续下一次循环
在这里插入图片描述

在这里插入图片描述
我们现在对这个循环进行一个解释

我们每次循环出的元素,我们都会进行判断等不等于连衣裙,如果等于的话,后面的填写输入框进行搜索以及抓取数据的操作直接跳过,不进行后面的操作,直接进行下一次的循环操作

相当于Python、C/C++中的continue,跳过当前循环继续下一次循环操作

现在呢,如果我们遇到搜索连衣裙的,我们相直接停下整个循环,不需要进行了,我们改怎么办呢?

我们可以使用一个退出循环的操作
在这里插入图片描述

直接跳出整个循环,当这个商品等于连衣裙的时候我们直接退出整个循环在这里插入图片描述
这个就是循环的控制操作

14.三大循环

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2169788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 环境变量的设置及其目的

文章目录 1. **为什么要设置Java环境变量?**2. **设置Java环境变量的步骤(Windows举例)**3. **设置环境变量的目的**3.1 原理1. **PATH 环境变量的作用**2. **JDK 的 bin 目录**3. **执行流程**4. **示例(Linux)** 总结…

【React】react hooks的使用规则

1. 使用规则 1.1 反例 import { useState } from react// 错误1 // useToggle()function Son() {return <div>子组件</div> }function useToggle() {const [isShow, setIsShow] useState(true)function toggle() {setIsShow(!isShow)}return {isShow,toggle} }fu…

传输大咖49 | 镭速助力影视传媒行业跨国文件传输更加安全、高效

在影视传媒领域&#xff0c;跨国合作已成为常态&#xff0c;伴随而来的是跨国文件交换的日益频繁。这无疑对文件的跨国传输效率、安全性和稳定性提出了更为严格的标准。接下来&#xff0c;我将为您分析影视传媒业在进行跨国文件传输时所面临的挑战&#xff0c;并提供一些有效的…

【软设】计算机网络

【软设】计算机网络 一.OSI/RM七层模型 (七层模型还是要知道的&#xff0c;后面再去记一些协议&#xff0c;知道每一层应用在哪些方面&#xff0c;给你个东西或者协议你要能看得出来) OSI/RM&#xff08;Open Systems Interconnection Reference Model&#xff09;是国际标准…

书生大模型实战营学习[7] InternLM + LlamaIndex RAG 实践

环境配置 选择30%A100做本次任务 conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia pip install einops pip install protobuf安装Llamaindex cond…

【UI】Vue3 + Naive-ui 使用表格Data Table 以及分页页码显示不全问题解决

参考文章&#xff1a; Vue3 Naive-ui Data Table 分页页码显示不全 Naive UI之数据表格分页pagination 数据列表分页全部代码: <n-data-tableref"tableRef"striped:columns"columns":pagination"pagination":bordered"false":d…

CSS 中的文本相关属性(line - height、font、letter - 属性、text - 属性)

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 line - height属性 字号与行高的取值约定 行高与盒子高度的关系 font、letter -属性 、text -属性 font属性 letter -属性 text - 属性 非 VIP 用户可前往公众号回复“css”进行免费阅读 line - height属性 字号与…

模形式与态、势、感、知

模形式是数学中一个重要的研究领域&#xff0c;主要出现在数论、代数几何和表示论等多个学科中。模形式可以视为在某种意义上具有“对称性”的函数&#xff0c;这些函数在特定的条件下满足一定的变换性质。具体来说&#xff0c;模形式是定义在上半平面上的复值函数&#xff0c;…

基于Linux环境安装 jdk 1.8 保姆级教程

1. 下载 jdk 1.8 首先需要下载 linux 版本的 jdk 1.8. 需要在 Oracle 官网的 JDK 1.8 下载页面 进行下载&#xff0c;找到 Linux x64 Compressed Archive 对应的链接。或者直接下载我准备好的压缩包&#xff0c;点击链接即可下载。 2. FTP压缩包文件传输 下载完成之后&…

2024南京软博会同期会议“中国信息技术应用创新大会”

软件产业作为新一代信息技术的核心驱动力&#xff0c;正以前所未有的速度推动着全球经济的转型升级。在此背景下&#xff0c;2024中国&#xff08;南京&#xff09;软件产业博览会&#xff08;以下简称“南京软博会”&#xff09;将于12月份在南京国际博览中心盛大召开&#xf…

下载配置Android Studio(2024年9月)

安装JAVA JDK 下载安装包 Java网站官网 Java Downloads | Oracle 我下载的是JDK Development Kit 17.0.12 downloads Windows x64 MSI Installer。 下载后打开文件&#xff0c;一路NEXT闭眼安装。 配置环境变量 设置-系统-系统高级设置-环境变量 1.新建一个系统环境变量&…

Java爬虫抓取数据的艺术

在信息时代&#xff0c;数据的重要性不言而喻。对于Java开发者来说&#xff0c;掌握如何使用Java进行数据抓取是一项宝贵的技能。通过编写爬虫程序&#xff0c;我们可以从互联网的海量信息中提取有价值的数据&#xff0c;用于市场分析、客户洞察、内容监控等多种场景。本文将介…

基于SSM的中小企业人力资源管理系统【附源码】

基于SSM的中小企业人力资源管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概述 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 学生…

Linux之实战命令14:watch应用实例(四十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

9.27今日错题解析(软考)

目录 前言信息安全——网络攻击算法基础——二分查找数据库系统——数据库设计过程 前言 这是用来记录我每天备考软考设计师的错题的&#xff0c;今天知识点为网络攻击、二分查找和数据库设计过程&#xff0c;大部分错题摘自希赛中的题目&#xff0c;但相关解析是原创&#xf…

PHM技术 : 特征缩放

特征缩放 监督/无监督机器学习算法已广泛用于开发数据驱动的异常检测、诊断和预测方法。此外,对于复杂电子设备的 PHM 来说,使用高维数据是不可或缺的。然而,如果各维度没有被标准化到相似水平,机器学习算法的输出可能会偏向于某些大尺度数据。例如,大多数分类器通过欧氏距离计…

统信UOS率先适配龙芯3A6000

UOS统信率先适配龙芯3A6000的相关介绍。 文章目录 统信软件第一时间完成龙芯3A6000处理器与统信UOS的适配工作&#xff0c;功能完整&#xff0c;性能优异。 综合相关测试结果&#xff0c;龙芯3A6000处理器总体性能与Intel第10代酷睿四核处理器相当。 多年来&#xff0c;龙芯中…

【Qt】前后端交互---DataCenter类

设计目的 前后端交互系统中&#xff0c;创建并使用数据核心类的目的就是让该类作为客户端的数据中心&#xff0c;也就是说其负责管理客户端的所有数据与服务器的网络通信。 数据持久化 初始化数据文件 该函数设计的目的就是用于检查所需要的文件和目录是否存在&#xff0c;如…

【C/C++】【基础数论】33、算数基本定理

算术基本定理&#xff0c;又称正整数的唯一分解定理。 说起来比较复杂&#xff0c;但是看一下案例就非常清楚了 任何一个大于 1 的正整数都可以唯一地分解成有限个质数的乘积形式&#xff0c;且这些质数按照从小到大的顺序排列&#xff0c;其指数也是唯一确定的。 例如&#…

mvnd 初体验

https://github.com/apache/maven-mvnd/releases?page2 mvnd内嵌了Maven&#xff08;因此不需要单独安装Maven&#xff09;。mvnd客户端是通过GraalVM构建的可执行文件&#xff0c;与启动传统JVM相比&#xff0c;它的启动速度更快&#xff0c;占用的内存更少。实际构建发生在一…