时间过的真快,不知不觉一年已过了一半,又快到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帮你实现商品有货的微信提醒的更多相关文章

  1. 让大蛇(Python)帮你找工作

    前段时间用Python实现了一个网络爬虫(让大蛇(Python)帮你找工作),效率总体还可以,但是缺点就是每次都需要手动的去触发,于是打算对该爬虫加上Timer,经过网上一番搜索以及API的查询,发现 ...

  2. 用Python帮你实现IP子网计算

    目录 0. 前言 1. ipaddress模块介绍 1.1 IP主机地址 1.2 定义网络 1.3 主机接口 1.4 检查address/network/interface对象 1.4.1 检查IP版 ...

  3. 第7.12节 可共享的Python类变量

    第7.12节 可共享的Python类变量 一.    引言 在上节已经引入介绍了类变量和实例变量,类体中定义的变量为类变量,默认属于类本身,实例变量是实例方法中定义的self对象的变量,对于每个实例都 ...

  4. Python之爬虫-京东商品

    Python之爬虫-京东商品 #!/usr/bin/env python # coding: utf-8 from selenium import webdriver from selenium.we ...

  5. Python获得文件时间戳 异常访问监控 邮件定时提醒

    Python获得文件时间戳  异常访问监控 邮件定时提醒

  6. 用python帮朋友刷帖

    0x0前言: 答应了一个朋友帮他刷贴,自己用python写了一个脚本刷. 虽然行为不好..但是缺钱用... 0x01准备: splinter模块: chrome浏览器驱动 0x02开始: 1.进入百度 ...

  7. Python 帮你玩微信跳一跳 GitHub Python脚本

    前言想自己搞游戏小程序的 在github 有人已经利用 python程序, 通过adb 获取不同型号安卓手机的系统截图,然后通过计算小人与目标位置距离之后得到准确的触摸时间,再通过 开发者模式里的 a ...

  8. 我用Python帮朋友做了张猪肉数据分析图,结果。。。

    却发现他是这么拿我当兄弟的 事情的经过是这样的: 我开开心心的去一家烧饼店吃饭 .   ​ 抬头一看,二师兄又涨价了 叹了口气,再这么下去真的要吃不起夹肉的烧饼了 点了两个烧饼一碗馄饨 快吃完的时候, ...

  9. 对比Node.js和Python 帮你确定理想编程解决方案!

    世上没有最好的编程语言.有些编程语言比其他编程语言用于更具体的事情.比如,你可能需要移动应用程序,网络应用程序或更专业化的系统,则可能会有特定的语言.但是我们暂时假设你需要的是一个相对来说比较简单的网 ...

随机推荐

  1. 机器学习实战基础(二十五):sklearn中的降维算法PCA和SVD(六) 重要接口,参数和属性总结

    到现在,我们已经完成了对PCA的讲解.我们讲解了重要参数参数n_components,svd_solver,random_state,讲解了三个重要属性:components_, explained_ ...

  2. Python面向对象06 /元类type、反射、函数与类的区别、特殊的双下方法

    Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 目录 Python面向对象06 /元类type.反射.函数与类的区别.特殊的双下方法 1. 元类type 2. 反射 3 ...

  3. 数据可视化实例(六): 带线性回归最佳拟合线的散点图(matplotlib,pandas)

    https://datawhalechina.github.io/pms50/#/chapter3/chapter3 如果你想了解两个变量如何相互改变,那么最佳拟合线就是常用的方法. 下图显示了数据中 ...

  4. centos7安装配置jdk1.8

    第一步:下载JDK  链接:https://pan.baidu.com/s/1sXWzvL9Tv7HIDxDPIw70SQ    提取码:vpbi 第二步:通过远程连接工具将下载好的JDK8上传到li ...

  5. Python Ethical Hacking - KEYLOGGER(2)

    Report function: Run in the background. Don't interrupt program execution. Every X seconds, send the ...

  6. 技能实际操作:如何为Centos7 配置静态路由?

    如图: 业务地址:192.168.10.0/24 ---- 192.168.20.0/24 管理地址:172.168.10.0/24 --- 172.168.20.0/24 需求:每台主机配置两张网卡 ...

  7. Codeforces1379-题解

    很久以前,申蛤申请了一个cf号叫 wzxakioi 有一天,戌蛤带着申蛤用这个账号打了一场div3,然后它的rating超过了shzr 之后申蛤又用这个号打了三场div2,于是  CF1379C 题意 ...

  8. 设计模式:observer模式

    目标:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 例子: class Observer //观察者 { public: virtual vo ...

  9. Git报错问题集锦

    git merge合并时遇上refusing to merge unrelated histories的解决方案 如果git merge合并的时候出现refusing to merge unrelat ...

  10. 如何在Windows、Linux系统中安装Redis

    一:Windos下安装Redis并设置自动启动 1.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网已经没有windows版本的下载地址,只 ...