應(yīng)國慶
(北京源石云科技有限公司(上海分公司) 上海市 200000)
為了提高鞋友的中簽率,以及能中到想要的尺碼,我們整合平臺,為潮鞋朋友選擇,以及入駐搶鞋功能,NIKE 鞋不同的國家發(fā)布時間是不一樣的,款式也不一樣,官網(wǎng)隔幾日就有幾款鞋發(fā)售,官網(wǎng)發(fā)售鞋是不定時的,有突襲模式,有預(yù)售模式,有抽簽?zāi)J剑S時登錄官網(wǎng)查看發(fā)售情況,一點(diǎn)也不智能。所以設(shè)計一套智能提醒,智能代搶,智能推介等系統(tǒng),借助我們開發(fā)好的工具進(jìn)行搶鞋,為潮友中簽帶來希望。
爬蟲架構(gòu)如圖1所示。
(1)用Tornado 框架搭建。Tornado 本身就是異步框架,其中包括兩個方面:服務(wù)端和客戶端。無論服務(wù)端和客戶端,具體的異步模型又可以分為回調(diào)(callback)和協(xié)程(coroutine),所以爬取效率將大大提高。另外整個過程需要頁面解析,增加日志,超時重啟,使用代理以及大量User-Agent 進(jìn)行偽裝成普通用戶。
(2)App 端和PC 端商品數(shù)據(jù)采集:爬取NIKE 大陸官網(wǎng)商品詳情信息(鞋的spu,sku)以及商品發(fā)售日歷,發(fā)售價格。
(3)部署在阿里云服務(wù)器定時任務(wù),每天上午8 點(diǎn)40 分更新數(shù)據(jù)。
(4)數(shù)據(jù)上報:數(shù)據(jù)清洗之后通過json 格式上報業(yè)務(wù)端存儲。
(1)主要實(shí)現(xiàn)數(shù)據(jù)持久化,因?yàn)閿?shù)據(jù)與日俱增。
(2)為業(yè)務(wù)端提供數(shù)據(jù)上報接口,方便拉取數(shù)據(jù)。
首先要用到Airtest 自動化測試框架,該工具主要是面向游戲UI 測試基于圖像識別,如游戲框架unity, Cocos-js 以及網(wǎng)易內(nèi)部的游戲框架,同時也支持原生Android App 的基于元素識別的UI 自動化測試。主要目的是通過Airtest 腳本模擬人為去操作云手機(jī)并注冊大量用戶,并與真實(shí)用戶賬號一起加入搶鞋隊列中。
用戶注冊系統(tǒng)全部由華為云手機(jī),為大量用戶提供授權(quán)注冊登錄,系統(tǒng)架構(gòu)如圖2所示。
(1)華為云手機(jī)端:在500 臺云手機(jī)安裝SNKRS 應(yīng)用。
(2)Airtest 自動化測試腳本部署10 臺Windows 服務(wù)器,并用腳本操控500 臺云手機(jī),每臺Windows 服務(wù)器,操控50 臺云手機(jī)。
(3)數(shù)據(jù)采集:收集用戶注冊信息,區(qū)分已注冊和未注冊,并將注冊數(shù)據(jù)保存。收集用戶行為數(shù)據(jù)并保存。
(4)數(shù)據(jù)處理與存儲:整個系統(tǒng)會對注冊賬號進(jìn)行清洗和歸納,然后存儲到阿里服務(wù)器數(shù)據(jù)庫。
(5)智能推薦:利用注冊用戶的行為軌跡,分析該用戶對那款鞋比較感興趣,推送類似款式給到用戶,并將相關(guān)鞋的信息一并推送到用戶。
為了優(yōu)化用戶在發(fā)售日歷的體驗(yàn),發(fā)售日歷頁需不展示同款潮鞋的女版,幼童版,大童版等潮鞋
(1)潮鞋的女版,大童版,幼童版潮鞋的發(fā)售信息在同款的發(fā)售詳情頁展示,展示模塊相關(guān)原型如下:
同理女版,大童版,幼童版發(fā)售詳情頁也要展示出自身外的相關(guān)發(fā)售模塊。
(2)相關(guān)發(fā)售展示分為兩類:多個相關(guān)發(fā)售,單個相關(guān)發(fā)售:
1.相關(guān)發(fā)售潮鞋卡片區(qū)域展示元素見下方原型:配圖、潮鞋標(biāo)題、發(fā)售價、智能代搶按鈕或已發(fā)售標(biāo)記。
2.有多個相關(guān)發(fā)售時,可左右滑動查看相關(guān)發(fā)售,排序優(yōu)先級為:女版、大童版、幼童版。
3.點(diǎn)擊非(智能代搶)按鈕區(qū)域跳轉(zhuǎn)至對應(yīng)潮鞋發(fā)售詳情頁。
4.點(diǎn)擊(智能代搶)按鈕,跳轉(zhuǎn)至發(fā)售詳情頁。
(3)相關(guān)發(fā)售區(qū)域的(智能代搶)按鈕分為四種狀態(tài):可搶、正在搶、已中簽、未中簽四種狀態(tài)。
(4)外加一種已發(fā)售狀態(tài)。
(5)發(fā)售前的潮鞋且用戶未對基發(fā)起智能代搶,則對該用戶為可搶狀態(tài),前端展示文案由后臺下發(fā)為:智能代搶,用戶點(diǎn)擊進(jìn)入智能代搶詳情頁。
(5)若用戶未登錄,則發(fā)售日歷&智能代搶詳情頁按照潮鞋的狀態(tài)決定智能代搶按鈕是否展示,若展示其可搶狀態(tài)。
(7)用戶若對某款潮鞋發(fā)起了智能代搶,且該款潮鞋是當(dāng)天發(fā)售的,在未拿到該用戶中簽結(jié)果前,前端展示文案由后臺下發(fā)為:搶+鞋碼+對號。
1.主要是幫助用戶更容易搶到自己喜歡的潮鞋,收集的注冊會員信息充分發(fā)揮了作用,注冊用戶越多搶的鞋基數(shù)概率就越高。
2.首先通過授權(quán)SNKRS 賬號才能智能搶鞋。
圖1:爬蟲架構(gòu)圖
圖2:用戶注冊系統(tǒng)架構(gòu)圖
3.授權(quán)之后不影響該賬號在SNKRS 的正常登錄。
4.智能中簽系統(tǒng)可以幫助用戶最多授權(quán)10 個代搶賬號,將幫你同時進(jìn)行智能搶鞋。
5.智能代搶連接發(fā)單人,接單人,滿足供需雙方的需求。
6.推送今天預(yù)發(fā)售的潮鞋信息,讓用戶自己選擇喜歡的款式,進(jìn)行智能代搶。發(fā)售提醒功能。
通過瀏覽器進(jìn)入SNRKS 國區(qū)官網(wǎng),右擊鼠標(biāo),選中“檢查”,選擇“Network”,刷新頁面后選擇第一條信息,獲取潮鞋中簽接口,由于該網(wǎng)頁為防止惡意采集信息而使用反爬蟲設(shè)置,從而拒絕用戶繼續(xù)訪問,爬蟲并發(fā)時受到限制。然后通過模擬瀏覽器的頭部信息來進(jìn)行訪問,也無法解決反爬蟲問題,甚至更換代理也無濟(jì)于事。針對這些問題采取以下措施:
(1)用Airtest 自動化養(yǎng)號,更換賬號頭像,模擬人的行為軌跡,例如,在頁面上點(diǎn)贊,收藏。
(2)用redis 作為賬號池,提前10 分鐘,鎖定10 萬個賬號進(jìn)入賬號池,然后設(shè)置1 萬并發(fā)同時排隊搶鞋,等到9 點(diǎn)準(zhǔn)時進(jìn)入接口搶。
(3)代理池需要2 萬個IP 代理,才能滿足10 萬個賬號同時搶鞋。
(1)請確保每個賬號收貨地址填寫完整,收貨地址不完整通過代碼識別后剔除。這樣才能保證每個賬號中簽幾率將大大提高。
(2)潮鞋發(fā)售前一小時,提前鎖定賬號進(jìn)入賬號池中,提前10 分鐘進(jìn)入排隊。
圖3:中簽監(jiān)控系統(tǒng)流程圖
(3)請務(wù)必開啟消息通知,搶購成功將通知你去SNKRS 中進(jìn)行付款。
(4)主程序每天早上8:50 自動啟動腳本。為了滿足10 萬個順利進(jìn)入到排隊中,必須提前檢查程序是否運(yùn)行正常。
(5)代理池是否滿足需求。
中簽系統(tǒng)就是爬蟲加并發(fā)的過程,只輪詢一個流程,若未中簽只能等到下次中簽,爆款基本秒殺。所以代理質(zhì)量要求非常高,一但失敗第二次請求肯定沒有希望,一定要做到萬無一失,才能確保走完流程,即便走完也未必能中,所以只能用大量賬號來提高中簽率。中簽監(jiān)控系統(tǒng)流程圖如圖3所示。
潮鞋發(fā)售監(jiān)控模塊:實(shí)時監(jiān)控SNKRS 線上預(yù)售列表,及監(jiān)控線下門店發(fā)售情況。
線上發(fā)售監(jiān)控模塊:主要是國區(qū)發(fā)售列表監(jiān)控,獲取國區(qū)發(fā)售潮鞋價格,尺碼,主圖,以及發(fā)售時間。
門店發(fā)售監(jiān)控:主要通過爬蟲抓取各大門店公眾號及網(wǎng)站大量信息進(jìn)行比對,以及線下門店發(fā)布信息,門店網(wǎng)站信息,提前通過短信通知用戶。
發(fā)售時間模塊:主要是線上線下發(fā)售時間,為什么要監(jiān)控,因?yàn)镾NKRS 發(fā)售模式有好幾種:
線上模式三種:
(1)FLOW 模式:代表先到先得,主要靠手速和網(wǎng)速,主要針對的是一些專屬購買的球鞋,耐克官方會通過短信等方式通知具有購買權(quán)限的會員進(jìn)行專屬通道的購買,先到先得。同時,在一些球鞋補(bǔ)貨的時候,F(xiàn)LOW 模式也會被用到。
(2)LEO 模式:是目前最多發(fā)售方式,可以簡單理解成小抽簽,抽簽時長為15 分鐘。主要針對的是一些中端市場的球鞋。通常會有黃金2 分鐘的說法,就是說在抽簽開始前兩分鐘的參與用戶中進(jìn)行1 輪抽簽,此次抽簽的球鞋數(shù)量對應(yīng)庫存的70%-80%,在2分鐘之后參與的用戶則需要在剩余20%-30%的庫存內(nèi)進(jìn)行競爭,所以這個模式下,也是越早參與,中簽的概率越高。
(3)DAN 模式:這個模式就是所謂的大發(fā)售,抽簽時長通常為30 分鐘,針對的是一些非常top 的球鞋,比如倒鉤、ts 聯(lián)名等等。這種抽簽?zāi)J皆诔楹灥娜魏螘r間段內(nèi)的中簽概率都是一樣的,而且沒有人數(shù)上限,所以專門會出現(xiàn)服務(wù)器爆炸的情況,大家就多多嘗試就好。
線下模式一種:
(1)Pass 模式:就是基于地理位置的線下發(fā)售,根據(jù)定位,會對在發(fā)售門店內(nèi)一定區(qū)域的用戶顯示預(yù)約頁面,在APP 上進(jìn)行線上預(yù)約,次日去指定門店進(jìn)行購買即可。
城市選擇模塊:主要選擇監(jiān)控一線城市為主,因?yàn)樾枨罅看螅钍烬R全。
爬蟲模塊:10 萬個賬號同時依次進(jìn)入中簽,其中會根據(jù)用戶選擇的款式,尺碼去觸發(fā)爬蟲,然后大量賬號中簽不同的款式及尺碼。
中簽通知模塊:主要通知用戶是否中簽,若中簽用短信方式提醒用戶,及時線上付款。
線下通知模塊:主要通知用戶線下門店發(fā)售潮鞋款式以及數(shù)量。但是這個人為去門店排隊購買。
潮鞋的圈子主要以90 后、00 后年青人為主,一雙潮鞋能夠展示自己的個性品位和生活方式。AJ 和 Yeezy 是當(dāng)下最受歡迎的品牌系列。他們有時間,有精力投身于潮鞋市場。有著敏銳的眼光洞察爆款。想盡辦法擁有一款屬于自己的爆款潮鞋。并且還能把潮鞋當(dāng)著一種投資理財?shù)拈T道。當(dāng)然,入行需謹(jǐn)慎,投資有風(fēng)險。我們的目的主要是幫助用戶提高潮鞋中簽率。為了用戶能中簽到心儀的潮鞋,是我們最大的動力。不斷優(yōu)化升級系統(tǒng),服務(wù)好用戶。當(dāng)APP 借助推薦系統(tǒng)3.0 架構(gòu)設(shè)計,并且爬蟲結(jié)合算法,推出3.0 智能代搶工具時,中簽更加精準(zhǔn),速度更快。到時會給APP 帶來巨大的客流量,或許能在整個球鞋市場有立足之地,穩(wěn)步發(fā)展。對于球鞋愛好者來說也是一種福音。