時間過的真快,不知不覺一年已過了一半,又快到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學習圈