python實(shí)現(xiàn)秒殺商品的微信自動(dòng)提醒功能(代碼詳解)
技術(shù)實(shí)現(xiàn)原理:獲取京東的具體的商品信息,然后再使用微信發(fā)送提醒
工具:需要兩個(gè)微信號(hào),這兩個(gè)微信號(hào)互為好友
1.收集自己想要的商品url
我們就以京東來舉例,獲取京東的秒殺商品信息:
首先,我們?cè)诰W(wǎng)頁(yè)上打開京東,搜索我們想要的商品,這邊我就以我最近買的東西為例子:
我們需要找到它的商品信息,需要打開瀏覽器的開發(fā)者模式,之后我們需要選擇自己的配送地址,這個(gè)時(shí)候里面就發(fā)送一些接口請(qǐng)求:
我們選擇一個(gè)有用的商品信息接口:
找到自己想要商品的信息接口,來判斷它是否有貨:
一般規(guī)則是:如果這個(gè)接口書籍里面有“無貨”的字符信息,那就是缺貨狀態(tài),否則就是有貨狀態(tài),可以發(fā)送商品鏈接,進(jìn)行購(gòu)買。
我們現(xiàn)在已經(jīng)成功獲取到了商品的url信息,接下來就是設(shè)置微信了。
2.設(shè)置微信通知
微信通知我們需要兩個(gè)微信號(hào),一個(gè)作為發(fā)送方,一個(gè)作為接受方,這個(gè)兩個(gè)賬號(hào)需要互為好友。
注意:作為發(fā)送方的微信可能會(huì)有注冊(cè)時(shí)間要求(微信好像設(shè)立了規(guī)則:如果晚于某一時(shí)間段注冊(cè)的賬號(hào)將不再具備網(wǎng)頁(yè)微信登陸功能)
這邊我們使用itchat模塊進(jìn)行模擬微信登陸:
import itchatitchat.auto_login(hotReload=True)
hotload參數(shù)設(shè)置為True可以記住第一次登陸的狀態(tài),下一次就不需要掃碼登陸了。
執(zhí)行以上代碼可以生成登陸二維碼,你只需要掃碼登陸就可以了。
接下來我們需要找到被通知的那個(gè)賬號(hào):
# 找到需要發(fā)送的對(duì)象users = itchat.search_friends(name=’神一樣的男子’)print(users)
搜索好友信息可以使用好友的微信名字也可以使用備注名字,接下來我們獲取發(fā)送對(duì)象的信息:
[{’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}]
我們發(fā)送信息需要獲取UserName字段,也就是發(fā)送對(duì)象的具體ID
# 獲取發(fā)送對(duì)象的IDuserName = users[0][’UserName’]
接下來我們就可以實(shí)現(xiàn)發(fā)送秒殺信息了。
3.實(shí)現(xiàn)搶貨通知
首先我們需要訪問京東的數(shù)據(jù)接口-----也就是我們第一步拿到的那個(gè)url,接下來我們?nèi)ピL問它就可以拿到返回的接口數(shù)據(jù):
import requestsurl = '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)
拿到數(shù)據(jù)之后我們就可以去判斷這個(gè)數(shù)據(jù)里面有沒有“無貨”的字符,如果沒有我們就使用itchat發(fā)送搶購(gòu)信息:
if (response.text.find(’無貨’) > 0): print(’暫時(shí)無貨: ’ + skuidUrl)else: print(’你定時(shí)的搶購(gòu)商品有貨啦,點(diǎn)擊立即購(gòu)買 :’ + skuidUrl) itchat.send('你定時(shí)的搶購(gòu)商品有貨啦,點(diǎn)擊立即購(gòu)買:n{}'.format(skuidUrl), toUserName=userName) flag += 1
這個(gè)搶購(gòu)信息我們需要在原來的url上截取skuid,然后進(jìn)行拼接:
import repattern = 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’
這樣我們的定時(shí)搶購(gòu)就完成啦!
最后,我們可以在訪問的外面設(shè)置一個(gè)while死循環(huán),如果一直沒有貨就一直發(fā)送訪問請(qǐng)求,如果OK,就跳出break!
附搶購(gòu)圖:
大家只需要點(diǎn)擊搶購(gòu)鏈接就能直接進(jìn)行購(gòu)買啦!
到此這篇關(guān)于python實(shí)現(xiàn)秒殺商品的微信自動(dòng)提醒功能的文章就介紹到這了,更多相關(guān)python微信自動(dòng)提醒內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP基礎(chǔ)入門第四篇(腳本變量、函數(shù)、過程和條件語(yǔ)句)2. ASP將數(shù)字轉(zhuǎn)中文數(shù)字(大寫金額)的函數(shù)3. jscript與vbscript 操作XML元素屬性的代碼4. jsp 實(shí)現(xiàn)的簡(jiǎn)易mvc模式示例5. JSP開發(fā)之hibernate之單向多對(duì)一關(guān)聯(lián)的實(shí)例6. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)7. 基于PHP做個(gè)圖片防盜鏈8. Jsp servlet驗(yàn)證碼工具類分享9. XML在語(yǔ)音合成中的應(yīng)用10. php使用正則驗(yàn)證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)
