618购物节要到了,Python帮你实现商品有货的微信提醒
时间过的真快,不知不觉一年已过了一半,又快到618购物狂欢节了,剁手党们都希望无论是618购物节还是双11购物节,都能够买到便宜又实惠的商品,但是真心实惠的东西往往是紧俏的,经常会出现无货的情况,我们平时又很忙,无法实时地盯着app去看?
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
为了自己心仪的商品有货第一时间可以通知到自己,今天小编用Python来实现商品有货的微信提醒,当然使用场景不仅仅在此,比如需要医院预约挂号已满,当有人因有事需要取消挂号时,那么就可以第一时间告知自己。
为了实现上述功能,本篇文章将按照如下步骤进行详细讲解,
itchat介绍
开发消息提醒功能
后台脚本部署
itchat介绍
itchat是一个开源的微信个人号接口,使用Python调用微信从未如此简单。下面介绍itchat的一些常用功能,详情功能可以参考如下文档:
'https://itchat.readthedocs.io/zh/latest/'
1.安装
pip install itchat
2.登陆
import itchat
#登入并保存登入状态,实现第一次运行时扫码,一定时间内再次运行就不用扫码了,手机微信上将显示:网页微信已登入.....
itchat.auto_login(hotReload=True)
#发送文本数据到文件助手
itchat.send("你好,Python学习与数据挖掘",toUserName="filehelper")
3.登出
itchat.logout()
4.命令行二维码
通过以下命令可以在登陆的时候使用命令行显示二维码:
itchat.auto_login(enableCmdQR=True)
5.消息发送
itchat.send,可以一次性发送多条
参数:(内容,用户)
返回值:发送结果,是否发送成功,json数据
注意:文件地址不可为中文
内容:可为单独的字符串内容,其他有【@类型@地址】,类型有图片(img)、文件(fil)、视频(vid)
用户:省略则发个自己,不稳定,msg['FromUserName']表示指定用户为触发用户
res=itchat.send('文本信息的发送......!', toUserName=msg['FromUserName'])
res=itchat.send('@img@%s' % './filex/zcy.gif', toUserName=msg['FromUserName'])
res=itchat.send('@fil@%s' % './filex/tt.txt', toUserName=msg['FromUserName'])
res=itchat.send('@vid@%s' % './filex/videox.mp4', toUserName=msg['FromUserName'])
开发消息提醒功能
我们以分析上个截图的Apple iPhone XS Max (A2104) 256GB 深空灰色的为例,进行商品有货的微信提醒开发,利用F12快捷键来查找商品是否有货的接口,截图如下:
(可点击图片进行放大)
该接口输出数据为
(可点击图片进行放大)
当发现接口数据的StockStateName字段状态由无货变成有货时,将第一时间发消息给小编的微信,并且将购买链接发送过来,方便去购买,是否是有点意思啊,兴趣是最好的老师,可以亲自测试一下。
为了测试消息是否可以发送成功,无货状态下发一句“你心仪的商品暂时无货”,截图如下:
核心代码
# 商品url
skuidUrl = 'https://item.jd.com/' + url.split('skuId=')[1].split('&')[0] + '.html'
response = requests.get(url, headers=headers)
if (response.text.find('无货') > 0):
print('----无货---')
print('暂时无货: ' + skuidUrl)
itchat.send("你心仪的商品暂时无货",toUserName=userName)
else:
print('----有货---')
itchat.send("你心仪的商品有货了,立即购买本:\n{}".format(skuidUrl),
toUserName=userName)
flag += 1
后台部署脚本
上面的验证过程都是线下进行的,如果你拥有服务器资源,可以通过发布操作将代码部署线上去,这样就可以解放你的电脑了。以Linux为服务器为例,介绍三种后台部署方法:
1.nohup 命令,xxx.py为你的代码
nohup python2.7 xxxxx.py &
2.定义了一个脚本start.sh
#!/bin/bash
cd 想要运行文件的路径名
python -u ***.py
后台执行命令
./start.sh > result.log &
3.python-daemon实现守护进程
pip install python-daemon
618购物节要到了,Python帮你实现商品有货的微信提醒的更多相关文章
- 让大蛇(Python)帮你找工作
前段时间用Python实现了一个网络爬虫(让大蛇(Python)帮你找工作),效率总体还可以,但是缺点就是每次都需要手动的去触发,于是打算对该爬虫加上Timer,经过网上一番搜索以及API的查询,发现 ...
- 用Python帮你实现IP子网计算
目录 0. 前言 1. ipaddress模块介绍 1.1 IP主机地址 1.2 定义网络 1.3 主机接口 1.4 检查address/network/interface对象 1.4.1 检查IP版 ...
- 第7.12节 可共享的Python类变量
第7.12节 可共享的Python类变量 一. 引言 在上节已经引入介绍了类变量和实例变量,类体中定义的变量为类变量,默认属于类本身,实例变量是实例方法中定义的self对象的变量,对于每个实例都 ...
- Python之爬虫-京东商品
Python之爬虫-京东商品 #!/usr/bin/env python # coding: utf-8 from selenium import webdriver from selenium.we ...
- Python获得文件时间戳 异常访问监控 邮件定时提醒
Python获得文件时间戳 异常访问监控 邮件定时提醒
- 用python帮朋友刷帖
0x0前言: 答应了一个朋友帮他刷贴,自己用python写了一个脚本刷. 虽然行为不好..但是缺钱用... 0x01准备: splinter模块: chrome浏览器驱动 0x02开始: 1.进入百度 ...
- Python 帮你玩微信跳一跳 GitHub Python脚本
前言想自己搞游戏小程序的 在github 有人已经利用 python程序, 通过adb 获取不同型号安卓手机的系统截图,然后通过计算小人与目标位置距离之后得到准确的触摸时间,再通过 开发者模式里的 a ...
- 我用Python帮朋友做了张猪肉数据分析图,结果。。。
却发现他是这么拿我当兄弟的 事情的经过是这样的: 我开开心心的去一家烧饼店吃饭 . 抬头一看,二师兄又涨价了 叹了口气,再这么下去真的要吃不起夹肉的烧饼了 点了两个烧饼一碗馄饨 快吃完的时候, ...
- 对比Node.js和Python 帮你确定理想编程解决方案!
世上没有最好的编程语言.有些编程语言比其他编程语言用于更具体的事情.比如,你可能需要移动应用程序,网络应用程序或更专业化的系统,则可能会有特定的语言.但是我们暂时假设你需要的是一个相对来说比较简单的网 ...
随机推荐
- scrapy 基础组件专题(九):scrapy-redis 源码分析
下面我们来看看,scrapy-redis的每一个源代码文件都实现了什么功能,最后如何实现分布式的爬虫系统: connection.py 连接得配置文件 defaults.py 默认得配置文件 dupe ...
- 机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD
PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...
- 数据可视化之分析篇(五)如何使用Power BI计算新客户数量?
https://zhuanlan.zhihu.com/p/65119988 每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一. 开拓新客户必然要付 ...
- Python面向对象04 /封装、多态、鸭子类型、类的约束、super
Python面向对象04 /封装.多态.鸭子类型.类的约束.super 目录 Python面向对象04 /封装.多态.鸭子类型.类的约束.super 1. 封装 2. 多态 3. 鸭子类型 4. 类的 ...
- 京东秋招提前批初试--java开发工程师
1,自我介绍,学过的课程有哪些 2,介绍一下java的内存结构和内存模型(jvm和jmm) 3,对于NIO有没有了解?作用是什么?(基于通道和缓冲区的I/O方式,用的是DirectByteBuffer ...
- 01-flask虚拟环境
一.虚拟环境 每一个环境都相当于一个新的操作系统.你可以在这个新的环境里安装软件,保存资料.每一个虚拟环境可以安装不同版本的软件,在不同虚拟环境中运行不同版本的软件互不影响. 二.virtuale ...
- 【Python】关于如何判断一个list是否为空的思考
前言 今天随手翻 stackoverflow,看到问题叫 How do I check if a list is empty? 一看这个问题,不难猜到到这是一个刚学 Python 的人提问的,因为这个 ...
- Go的100天之旅-03变量
变量 变量介绍 变量这个词来源于数学,类似方程中的x.y,代表的是存储在计算机中的值.这里主要介绍Go和其它编程语言不一样的地方,在前面我们提到过,Go是一门静态语言.静态语言区别动态语言一个重要的特 ...
- antd踩坑:value.locale is not a function
这个问题来源于日期选择器 RangerPicker 的特殊情况. <Col span={7} key={9}> <FormItem label="投运时间" {. ...
- vue : 在vuex里写一个数组首尾元素互换的方法
不着急上代码,先想几个问题. vuex里怎么写方法? mutation里写vuex方法,组件中用commit调用. 数组首尾元素怎么互换? arr.splice(0, 0, arr[arr.lengt ...