• 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("你心仪的商品有货了,立即购买本:
    {}".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
     
  • 相关阅读:
    python
    UVA 10891——Game of Sum
    codeforces632E 小偷与商店
    NOIP2007——树网的核
    NOIP2014 提高组 Day2——寻找道路
    nodeoj2000——Freda's Chess
    BZOJ1012——[JSOI2008]最大数maxnumber
    poj2823-Sliding Window
    开博客了,大家好,这是ATHENS的博客。
    Linux简易APR内存池学习笔记(带源码和实例)
  • 原文地址:https://www.cnblogs.com/shann001/p/13099527.html
Copyright © 2020-2023  润新知