歡迎您光臨本站 註冊首頁

python實現秒殺商品的微信自動提醒功能(代碼詳解)

←手機掃碼閱讀     火星人 @ 2020-04-28 , reply:0

技術實現原理:獲取京東的具體的商品信息,然後再使用微信發送提醒

工具:需要兩個微信號,這兩個微信號互為好友

1.收集自己想要的商品url

我們就以京東來舉例,獲取京東的秒殺商品信息:

首先,我們在網頁上打開京東,搜索我們想要的商品,這邊我就以我最近買的東西為例子:

我們需要找到它的商品信息,需要打開瀏覽器的開發者模式,之後我們需要選擇自己的配送地址,這個時候裡面就發送一些接口請求:

我們選擇一個有用的商品信息接口:

找到自己想要商品的信息接口,來判斷它是否有貨:

一般規則是:如果這個接口書籍裡面有“無貨”的字符信息,那就是缺貨狀態,否則就是有貨狀態,可以發送商品鏈接,進行購買。

我們現在已經成功獲取到了商品的url信息,接下來就是設置微信了。

2.設置微信通知

微信通知我們需要兩個微信號,一個作為發送方,一個作為接受方,這個兩個賬號需要互為好友。

注意:作為發送方的微信可能會有註冊時間要求(微信好像設立了規則:如果晚於某一時間段註冊的賬號將不再具備網頁微信登陸功能)

這邊我們使用itchat模塊進行模擬微信登陸:

import itchat itchat.auto_login(hotReload=True)

hotload參數設置為True可以記住第一次登陸的狀態,下一次就不需要掃碼登陸了。

執行以上代碼可以生成登陸二維碼,你只需要掃碼登陸就可以了。

接下來我們需要找到被通知的那個賬號:

# 找到需要發送的對象 users = itchat.search_friends(name='神一樣的男子') print(users)

搜索好友信息可以使用好友的微信名字也可以使用備註名字,接下來我們獲取發送對象的信息:

我們發送信息需要獲取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("你定時的搶購商品有貨啦,點擊立即購買:

{}".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實現秒殺商品的微信自動提醒功能(代碼詳解)已經有281次圍觀

http://coctec.com/docs/python/shhow-post-232003.html