618购物节要到了,Python帮你实现商品有货的微信提醒

為{幸葍}努か 提交于 2020-10-14 05:44:27

时间过的真快,不知不觉一年已过了一半,又快到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
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!