618購物節要到了,Python幫你實現商品有貨的微信提醒

時間過的真快,不知不覺一年已過了一半,又快到618購物狂歡節了,剁手黨們都希望無論是618購物節還是雙11購物節,都能夠買到便宜又實惠的商品,但是真心實惠的東西往往是緊俏的,經常會出現無貨的情況,我們平時又很忙,無法實時地盯着app去看?

爲了自己心儀的商品有貨第一時間可以通知到自己,今天小編用Python來實現商品有貨的微信提醒,當然使用場景不僅僅在此,比如需要醫院預約掛號已滿,當有人因有事需要取消掛號時,那麼就可以第一時間告知自己。

爲了實現上述功能,本篇文章將按照如下步驟進行詳細講解,

  • itchat介紹

  • 開發消息提醒功能

  • 後臺腳本部署

itchat介紹

itchat是一個開源的微信個人號接口,使用Python調用微信從未如此簡單。下面介紹itchat的一些常用功能,詳情功能可以參考如下文檔:

'https://itchat.readthedocs.io/zh/latest/'

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-PUtAQ6lY-1591959000342)(https://upload-images.jianshu.io/upload_images/23128288-f630e7725bd63985.gif?imageMogr2/auto-orient/strip)]

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快捷鍵來查找商品是否有貨的接口,截圖如下:

(可點擊圖片進行放大)

該接口輸出數據爲

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IMvulnP8-1591959000350)(https://upload-images.jianshu.io/upload_images/23128288-31684d0ff71f6c60?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

(可點擊圖片進行放大)

當發現接口數據的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

爲解決初學者學習上的困難,專門建立的Python學習扣QUN:⑧⑤⑤-④零⑧-⑧⑨③從零基礎開始到Python各領域的項目實戰教程、開發工具與電子書籍。與你分享企業當下對於python人才需求及學好python的高效技巧,不停更新最新教程!點擊加入我們的 python學習圈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章