【苹果】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
前言
缘由
Iphone15来了,两年之约你还记得吗?

遂整合之前iphone13及iphone14的相关抢购代码,完成一个SpringBoot监听Iphone15有货邮件提醒+python自动化脚本小功能。
后端基于SpringBoot,通过苹果官网进行有货接口调用,将JSON结果解析分析是否有货,并展示近10条有货记录列;可灵活监听对应型号,通过邮件关联,有货邮件通知;也可灵活进行有货自动触发自动化Selenium+Python脚本,从而解放双手,直接起飞。
本文以iPhone 15 Pro Max为例进行解析,若iPhone 15 Pro可自行修改即可。
快速链接
公众号:【JavaDog程序狗】
关注公众号,发送 iphone ,无任何套路即可获得

成果初展
1.测试邮箱连通


2.有货订阅监听


3.有货消息列表

4.Selenium+Python自动化脚本

主要目标
实现3大重点
1. SpringBoot监听Iphone有货信息
2. 有货JavaMail邮件通知
3. 有货自动执行Selenium+Python自动化脚本
正文
前置条件
1.Java环境(必备)
后端以SpringBoot为技术栈,所以Java环境是前置条件

2.企业/SMTP邮箱(非必须)
如果配置了邮件监听,需要一个企业邮箱或者SMTP邮箱进行推送,此条件非必须,可在项目中配置是否使用邮件推送,见下图

3.Selenium+Python环境(非必须)
如果想有货自动执行Selenium+Python自动化脚本,就需要搭建Python相关环境。如果有不了解可以参考本狗之前的文章,里面有环境的搭建流程。
常见Selenium+Python问题
Chromedriver与Chrome版本不兼容问题
参考文章
https://blog.csdn.net/jylsrnzb/article/details/131492090
本狗提供2个脚本,可灵活使用

技术栈
后端
| 插件 | 版本 | 用途 |
|---|---|---|
| jdk | 1.8 | java环境 |
| lombok | 1.18.16 | 代码简化插件 |
| maven | 3.6.3 | 包管理工具 |
| druid | 1.1.24 | JDBC组件 |
| hutool | 5.7.20 | Java工具类库 |
| mybatis-plus | 3.4.1 | 基于 MyBatis 增强工具 |
| mysql | 8.0 / 5.7 | 数据库 |
| spring-boot | 2.5.15 | SpringBoot的依赖配置 |
前端
| 插件 | 版本 | 用途 |
|---|---|---|
| layui | 2.5.6 | 经典开源模块化前端 UI 框架 |
| jquery | 2.1.1 | 简洁的JavaScript框架 |
重点解析
1.苹果有货接口分析
- 苹果有货接口剖析

其中第一个{}表示型号,第二个{}表示地区,拼接后通过HTTP请求调用并分析是否有货

- 监听定时任务时间corn表达式配置
建议使用动态ip,会避免503错误


2.有货邮件推送
- 引入邮箱依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>${boot.version}</version>
</dependency>
- 完善邮件YMAL配置

- 使用JavaMailSenderImpl发送

- 灵活管控是否发送邮件通知

3.Selenium+Python自动化抢购脚本
- 型号颜色/型号容量对应map整理,用于有货后自动执行python脚本传参值对应匹配

- 灵活管控是否自动执行Python自动化抢购脚本

- 执行脚本绝对路径设置

4.全景GIF图

总结
本文通过Java配合Python,以SpringBoot监听苹果有货接口,从而下发进行邮件通知及自动化抢购脚本执行。熟悉后端技术栈的同时,也可以回顾Layui及Jquery等老技术。希望协议技术大佬可以予以指点,互相学习进步。
️写在最后:支持国货!支持国货!支持国货!
猜你想问
如何与狗哥联系进行探讨
关注公众号【JavaDog程序狗】
公众号回复【入群】或者【加入】,便可成为【程序员学习交流摸鱼群】的一员,问题随便问,牛逼随便吹。

此群优势:
- 技术交流随时沟通
- 任何私活资源免费分享
- 实时科技动态抢先知晓
- CSDN资源免费下载
- 本人一切源码均群内开源,可免费使用
2.踩踩狗哥博客
大家可以在里面留言,随意发挥,有问必答

猜你喜欢
文章推荐
【项目实战】SpringBoot+uniapp+uview2打造H5+小程序+APP入门学习的聊天小项目
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【模块分层】还不会SpringBoot项目模块分层?来这手把手教你!
【ChatGPT】SpringBoot+uniapp+uview2对接OpenAI,带你开发玩转ChatGPT

【苹果】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本的更多相关文章
- selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击, ...
- selenium+python自动化79-文件下载(SendKeys)
前言 文件下载时候会弹出一个下载选项框,这个弹框是定位不到的,有些元素注定定位不到也没关系,就当没有鼠标,我们可以通过键盘的快捷键完成操作. SendKeys库是专业的处理键盘事件的,所以这里需要用S ...
- SpringBoot监听redis订阅监听和发布订阅
前言 我们可以在redis中发布一条订阅到通道中,所有监听了这个通道的都可以收到这个发布的内容! redis订阅监听配置类 代码如下: RedisListenerConfig.java package ...
- SpringBoot监听redis过期key
开启过期监听 vim /etc/redis.conf 取消notify-keyspace-events Elg的注释 pom.xml 添加: <dependency> <groupI ...
- springboot监听kafka(不使用spring-kafka)
一.不使用spring-kafka的原因 kafka服务端版本为0.10.0.1-Ipv20191220-hbp2.1.0,为避免版本问题导致监听失败,客户端也采用0.10.0.1版本,客户端0.10 ...
- selenium python 第一个脚本
为什么选择python?我的回答很简单,简单易学,功能强大! 下面看看python和selenium 2的结合是什么样子吧 一.第一个selenium python脚本: #coding = utf- ...
- selenium+python自动化登录脚本
利用selenium+python写的一个关于登录的自动化脚本
- selenium+python自动化102-登录页面滑动解锁(ActionChains)
前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 seleniu ...
- selenium+python自动化之元素定位
自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...
- selenium+python自动化之操作浏览器
一.打开网站 1.第一步:从selenium里面导入webdriver模块 2.打开Firefox浏览器(Ie和Chrome对应下面的) 3.打开百度网址 二.设置休眠 1.由于打开百度网址后,页面加 ...
随机推荐
- 一个神奇的golang技巧:扩大heap内存来降低gc频率
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 具体的文章请看:https://web.archive.org/web/ ...
- 【K哥爬虫普法】房产数据刑吗?爬虫多年没踩过缝纫机,劝你找找自己原因!
我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了"K哥爬虫普法"专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知 ...
- CF676C 题解
使用尺取法(双指针法). 由于字符种类只有 \(2\) 种,答案一定是全 a 或全 b. 情况 \(1\):全 a 快指针循环移动,并统计字符 b 的数量 \(cntb\),直到 \(cntb\) 即 ...
- 本地搭建playground
本文主要是记录我搭建go playground的步骤. 1.安装docker 如果你使用的Ubuntu,docker的安装步骤可以参见这里,这是我之前写的在Ubuntu18.04下安装fabric,其 ...
- pycharm像vs那样进行代码折叠
在visual studio中可以使用#region和#endregion来进行代码折叠,我尝试在pycharm中也可以使用相同的指令来折叠代码. 但是如果#endregion是在方法的最后面或者类的 ...
- TC插件管理器及在TC中新建文件
新建文件 Shift+F4可以新建文件,但是会调用内置的编辑器来打开. 在设置中通过修改F4快捷键对应的程序来修改. PS.F4编辑没找到根据扩展名来调用指定程序打开,可以F3中进行补充. NewFi ...
- go中的类型转换成interface之后如何复原
go中interface转换成原来的类型 首先了解下interface 什么是interface? 如何判断interface变量存储的是哪种类型 fmt 反射 断言 来看下interface的底层源 ...
- TeXStudio与Bakoma TeX 结合实现实时阅览
参考链接:VSCode 或 TeXStudio LaTeX 配置方法 - 知乎 相信大家在使用TeXStudio时候,每次修改完毕都要运行一下再能看到PDF界面,这样做十分不方便,因此先给出如下操作办 ...
- 8.5 CheckRemoteDebuggerPresent
CheckRemoteDebuggerPresent 也是一个微软提供的反调试函数,该函数可以在本地或者远程进程中使用.函数接收两个参数进程句柄和一个指向布尔值的指针.如果指定的进程正在被调试,则函数 ...
- C/C++ 动态解密释放ShellCode
今天在复习<加密与解密>时,在软件保护这一章中有一个代码与数据结合的案例,其原理是将代码段中的代码进行xor异或加密处理以后回写到原始位置,当程序运行后将此处的内容动态的进行解密,解密后回 ...