您好,登錄后才能下訂單哦!
這篇文章主要講解了python如何實現秒殺商品的微信自動提醒功能,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
技術實現原理:獲取京東的具體的商品信息,然后再使用微信發送提醒
工具:需要兩個微信號,這兩個微信號互為好友
1.收集自己想要的商品url
我們就以京東來舉例,獲取京東的秒殺商品信息:
首先,我們在網頁上打開京東,搜索我們想要的商品,這邊我就以我最近買的東西為例子:
我們需要找到它的商品信息,需要打開瀏覽器的開發者模式,之后我們需要選擇自己的配送地址,這個時候里面就發送一些接口請求:
我們選擇一個有用的商品信息接口:
找到自己想要商品的信息接口,來判斷它是否有貨:
一般規則是:如果這個接口書籍里面有“無貨”的字符信息,那就是缺貨狀態,否則就是有貨狀態,可以發送商品鏈接,進行購買。
我們現在已經成功獲取到了商品的url信息,接下來就是設置微信了。
2.設置微信通知
微信通知我們需要兩個微信號,一個作為發送方,一個作為接受方,這個兩個賬號需要互為好友。
注意:作為發送方的微信可能會有注冊時間要求(微信好像設立了規則:如果晚于某一時間段注冊的賬號將不再具備網頁微信登陸功能)
這邊我們使用itchat模塊進行模擬微信登陸:
import itchat itchat.auto_login(hotReload=True)
hotload參數設置為True可以記住第一次登陸的狀態,下一次就不需要掃碼登陸了。
執行以上代碼可以生成登陸二維碼,你只需要掃碼登陸就可以了。
接下來我們需要找到被通知的那個賬號:
# 找到需要發送的對象 users = itchat.search_friends(name='神一樣的男子') print(users)
搜索好友信息可以使用好友的微信名字也可以使用備注名字,接下來我們獲取發送對象的信息:
[{'Uin': 0,
'UserName': '@131572fb0f21d053055ba1caebd1c3089178a1ccafbf320bb72599c4d04a7e20',
'NickName': '吾',
'HeadImgUrl': '/cgi-bin/mmwebwx-bin/webwxgeticon?seq=670180178&username=@131572fb0f21d053055ba1caebd1c3089178a1ccafbf320bb72599c4d04a7e20&skey=@crypt_32bfc8c4_05d6f5196800a0aba56d8b80af69f09e',
'ContactFlag': 1, 'MemberCount': 0, 'MemberList': [], 'RemarkName': '神一樣的男子', 'HideInputBarFlag': 0, 'Sex': 1, 'Signature': '消失在黑暗中', 'VerifyFlag': 0, 'OwnerUin': 0, 'PYInitial': 'W', 'PYQuanPin': 'wu', 'RemarkPYInitial': 'SYYDNZ', 'RemarkPYQuanPin': 'shenyiyangdenanzi', 'StarFriend': 0, 'AppAccountFlag': 0, 'Statues': 0, 'AttrStatus': 33657021, 'Province': '上海', 'City': '黃浦', 'Alias': '', 'SnsFlag': 1, 'UniFriend': 0, 'DisplayName': '', 'ChatRoomId': 0, 'KeyWord': '', 'EncryChatRoomId': '', 'IsOwner': 0}]
我們發送信息需要獲取UserName字段,也就是發送對象的具體ID
# 獲取發送對象的ID userName = users[0]['UserName']
接下來我們就可以實現發送秒殺信息了。
3.實現搶貨通知
首先我們需要訪問京東的數據接口-----也就是我們第一步拿到的那個url,接下來我們去訪問它就可以拿到返回的接口數據:
import requests url = "https://c0.3.cn/stock?skuId=60456599372&area=2_2825_51932_0&venderId=10181278&buyNum=1&choseSuitSkuIds=&cat=9987,830,863&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=479124268&ch=1&callback=jQuery3588468" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/531.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", "Connection": "keep-alive" } respone = requests.get(url, headers=headers) print(respone.text)
拿到數據之后我們就可以去判斷這個數據里面有沒有“無貨”的字符,如果沒有我們就使用itchat發送搶購信息:
if (response.text.find('無貨') > 0): print('暫時無貨: ' + skuidUrl) else: print('你定時的搶購商品有貨啦,點擊立即購買 :' + skuidUrl) itchat.send("你定時的搶購商品有貨啦,點擊立即購買:\n{}".format(skuidUrl), toUserName=userName) flag += 1
這個搶購信息我們需要在原來的url上截取skuid,然后進行拼接:
import re pattern = re.compile("skuId=(\d+)&") url = "https://c0.3.cn/stock?skuId=60456599372&area=2_2825_51932_0&venderId=10181278&buyNum=1&choseSuitSkuIds=&cat=9987,830,863&extraParam={%22originid%22:%221%22}&fqsp=0&pdpin=&pduid=479124268&ch=1&callback=jQuery3588468" result = pattern.findall(url) skuidUrl = 'https://item.jd.com/' + result[0] + '.html'
這樣我們的定時搶購就完成啦!
最后,我們可以在訪問的外面設置一個while死循環,如果一直沒有貨就一直發送訪問請求,如果OK,就跳出break!
附搶購圖:
大家只需要點擊搶購鏈接就能直接進行購買啦!
看完上述內容,是不是對python如何實現秒殺商品的微信自動提醒功能有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。