還在擔(dān)心雙十二漲價,Python做一個天貓商品價格監(jiān)督器
雙十一在大家的瘋狂購物中結(jié)束,今年雙十一,天貓又一次的刷新了自己的戰(zhàn)績,全天的交易額達(dá)到了2684億,大家的購買力實(shí)在是驚人。但是在如此大的購買過后,有些朋友卻大呼自己“上當(dāng)”啦。原因是在于他們認(rèn)為天貓在雙十一之前漲價,然后在雙十一當(dāng)天顯示降價來欺騙消費(fèi)者,而網(wǎng)上一搜,這樣的文章可謂不在少數(shù)~~
事實(shí)真的是這樣嗎?為了讓大家以后不在為這件事情困擾,也為了大家雙十二能夠真真正正的拿到優(yōu)惠,今天小編就帶領(lǐng)大家利用python來打造一款天貓商品價格監(jiān)督器。
1.如何監(jiān)控價格
如何進(jìn)行價格上的監(jiān)督呢,首先我們需要拿到這個商品的鏈接,注意的是,這里的鏈接不是淘口令,而是網(wǎng)頁的鏈接地址,如下鏈接:
https://detail.tmall.com/item.htm?spm=a230r.1.14.4.495855e26sBKGG&id=596023065281&ad_id=&am_id=&cm_id=140105335569ed55e27b&pm_id=&abbucket=20
上述的鏈接中,我們可以得知商品的id為596023065281,這一點(diǎn)非常重要,因?yàn)橛辛松唐返膇d,我們才能在后面調(diào)用接口返回商品的詳細(xì)信息,有時候商品的鏈接中還有skuId的信息,這個skuId代表的是某一具體的商品。我們利用下面的程序,便可以獲取到商品的id信息,并將id進(jìn)行編碼,組成新的鏈接來獲取商品的詳細(xì)信息。
接下來我們便爬取新的鏈接所返回的json數(shù)據(jù),并獲取我們需要的商品名稱、價格等信息。部分程序如下圖所示 :
上述的程序中我們將新的鏈接返回的json數(shù)據(jù)進(jìn)行分析,并分別按照不同的情況進(jìn)行數(shù)據(jù)獲取,這里的情況包括商品是否是預(yù)售商品,商品的價格是否是浮動的,例如我們經(jīng)常會看到某些商品價格是23.0~230.0的情況,或者是商品的規(guī)格可以被選擇的情況。
我們按照不同的情況都進(jìn)行相應(yīng)的處理后,便提高了程序的穩(wěn)定性,針對于不同的商品都能獲得我們的價格和名稱。
2.定時爬取
上述的程序完成后,接下來就是如何讓程序按照我們既定的時間進(jìn)行爬取,這里的話,大家不必時時刻刻不停的爬取,而是定時進(jìn)行爬取就好,定時的話這里小編利用的是schedule模塊進(jìn)行定時爬取,大家可以設(shè)定每隔幾個小時或者幾分鐘進(jìn)行爬取。
為了給大家進(jìn)行展示,小編設(shè)定的是每隔5分鐘進(jìn)行一次爬取,爬取的結(jié)果如下圖所示:
3.可視化展示
當(dāng)我們爬取到一定的時間段后,想要進(jìn)行可視化,可以利用matplotlib庫來進(jìn)行價格的可視化展示,程序如下圖所示:
我們最終的展示結(jié)果如下圖所示:
如此一來,我們就可以做到商品價格的監(jiān)控,大家可以在服務(wù)器上一直運(yùn)行該程序,然后在一段時間后畫出該商品的價格曲線,商品的價格動態(tài)便會被我們掌握。這樣,我們就再也不怕價格的變化了。